[英]$wpdb->insert code not working with foreach
問題:應該通過$ wpdb-> insert將一堆行插入數據庫,但是沒有創建新行。
背景:
請幫忙!
<?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.