【问题标题】:$wpdb->insert code not working with foreach$wpdb->插入代码不适用于 foreach
【发布时间】:2012-03-10 00:52:28
【问题描述】:

问题:应该有一堆行通过 $wpdb->insert 插入到数据库中,但没有创建新行。

背景:

  • 我在 PhpMyAdmin 中检查了查询,它返回 178 行。
  • 这是一个 Wordpress 插件,其函数在“init”上触发。
  • 尝试了各种 var_dump,但变量 $object_id 和 $taxo_id 仍然显示为空。

请帮忙!

<?php
    function cb_t2c_cat_updater () {
    global $wpdb;
    $prefix = $wpdb->prefix;

    //This is a truncated version of the valid SQL query, returns 178 rows
      $cb_t2c_cat_update = $wpdb->get_results("SELECT
      ".$prefix."associations.object_id as 'object_id', ".$prefix."associations.term_taxonomy_id as 'taxo_id', ".$prefix."associations.term_id as 'term_id', ".$prefix."associations.cat_ID as 'cat_ID'
    FROM ...
    WHERE...
    ORDER BY object_id ASC, term_id ASC, cat_ID ASC",ARRAY_A);

    foreach ($cb_t2c_cat_update as $values) {
        $table = $prefix . 'term_relationships';
        $object_id = $values['object_id'];
        $taxo_id = $values['taxo_id'];
        $wpdb->insert(
            $table, 
            array( 
                'object_id' => $object_id, 
                'term_taxonomy_id' => $taxo_id,
                'term_order' => 0
                ), 
            array( 
                '%d', 
                '%d',
                '%d',
                    ) 
            );
        }
    }

add_action('init', 'cb_t2c_cat_updater');

?>

【问题讨论】:

  • 在循环中 var_dump $values 会发生什么?
  • 我得到一串我想插入到 wp 表中的值。实际上,这很有帮助。我将 var_dump($object_id) 和 var_dump($taxo_id) 放在 foreach 循环中,所以至少我知道这些变量是有价值的。不知道为什么插入不起作用。
  • 类似string(1) "9" string(3) "132" string(2) "32" string(3) "103" string(2) "33" string(3) "103" string(2) "34" string(3) "103"
  • 如果我像你说的那样 var_dump($values) 完全一样。我最终得到了一串长得可笑的字符串。
  • 您确定 $table 包含正确的值吗? $wpdb->insert() 出错时会返回什么?你确定你使用的方法正确吗?你让插入方法自己工作了吗?

标签: php sql foreach wordpress


【解决方案1】:

有一个可行的解决方案。
通过以下方式使变量成为整数:

 $num_object_id = (int)$object_id

然后将它们传递到如下查询中:

$wpdb->query("INSERT INTO... ")

【讨论】:

    猜你喜欢
    • 2016-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-16
    • 2011-01-24
    • 2015-06-16
    • 2013-09-07
    相关资源
    最近更新 更多