【问题标题】:wpdb->query prepare doesn't workwpdb->查询准备不起作用
【发布时间】:2013-06-21 18:37:31
【问题描述】:

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

);

但是还没有运气。

【问题讨论】:

  • “它不起作用”不是有效的问题描述。你能解释一下 what 不起作用吗?抛出什么错误?它在做什么,你期望它做什么?
  • 不,我没有收到任何错误。
  • 我也试过回显$ad_id和$ad_img,都是有效值
  • 你确定前缀是不是{$wpdb->prefix}_awpcp_adphotos

标签: php mysql database wordpress


【解决方案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,
));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-17
    • 1970-01-01
    • 2016-10-05
    • 2013-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-28
    相关资源
    最近更新 更多