wpdb->查询准备不起作用

时间:2013-06-21 18:37:31

标签: php mysql database wordpress wpdb

我按照介绍使用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));

此外,禁用和is_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

);

但还没有运气。

1 个答案:

答案 0 :(得分:1)

不应该是(?):

$wpdb->query(
     $wpdb->prepare(
            "INSERT INTO {$wpdb->prefix}awpcp_adphotos(`ad_id`, `image_name`, `disabled`, `isprimary`) 
            VALUES(%d, %s, %d,%d)",
            $ad_id, $ad_img, 0, 0)
 );

我认为你把整件事写错了,可能是错误的:)

对于您的修改,如果使用insert()应该是:

$wpdb->insert($wpdb->prefix.'awpcp_adphotos', array(
     'ad_id' => $ad_id,
     'image_name' => $image_name,
     'disabled' => $disabled,
     'isprimary' => $isprimary,
));