【发布时间】: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() 出错时会返回什么?你确定你使用的方法正确吗?你让插入方法自己工作了吗?