我按照介绍使用prepare向表中插入一些数据。代码如下:
$wpdb->query(
$wpdb->prepare(
"INSERT INTO {$wpdb->prefix}awpcp_adphotos VALUES
(ad_id, image_name, disabled, isprimary)
(%d, %s, %d,%d)",
$ad_id,
$ad_img,
0,
0));
此外,disabled和is\\u primary应为布尔值。但我不确定这里的数据类型是什么。
我也试过了
$wpdb->insert(
\'{$wpdb->prefix}awpcp_adphotos\', // Table name
array(
\'ad_id\' => $ad_id,
\'image_name\' => $ad_img,
\'disabled\' => 0,
\'is_primary\' => 0,
), // Columns
array(
\'%s\',
\'%d\',
\'%d\',
\'%d\'
) // Explicit formatting
);
但我还没有任何运气。运行代码时没有错误消息。
好吧,我在其他地方找到了答案。应该是这样的:
$wpdb->insert($wpdb->prefix.\'awpcp_adphotos\', array(
\'ad_id\' => $ad_id,
\'image_name\' => $image_name,
\'disabled\' => $disabled,
\'isprimary\' => $isprimary,
));
我对前缀格式感到困惑。
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成
我很确定第一个SQL查询不是正确的SQL(insert有不同的语法);)它应该是:
INSERT INTO {$wpdb->prefix}awpcp_adphotos (ad_id, image_name, disabled, isprimary) VALUES (%d, %s, %d,%d)
在第二个例子中,我几乎可以肯定
ad_id
不是字符串,并且
image_name
不是数字。当然,我只是猜测,因为我还没有看到这个表定义。
请记住,您始终可以打开wpdb的错误报告。只要在代码中输入这一行,您就会看到wpdb错误:
$wpdb->show_errors();