簡體   English   中英

$ wpdb->插入代碼不適用於foreach

[英]$wpdb->insert code not working with foreach

問題:應該通過$ wpdb-> insert將一堆行插入數據庫,但是沒有創建新行。

背景:

  • 我已經檢查了PhpMyAdmin中的查詢,它返回178行。
  • 這是針對具有在“ init”上觸發的功能的Wordpress插件。
  • 嘗試了各種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');

?>

有一個可行的解決方案。
通過以下方式使變量為整數:

 $num_object_id = (int)$object_id

然后將它們傳遞給查詢,例如:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM