我试图使用excel文件添加标签的自定义列表,我完成了大部分工作。但我很困惑,我怎么能在2个不同的表列中添加相同的值。
我已将值插入
INSERT INTO `steve`.`wp_terms` (`term_id`, `name`, `slug`, `term_group`) VALUES (NULL, 'tag99', 'tag99', '0');
和
INSERT INTO `steve`.`wp_term_taxonomy` (`term_taxonomy_id`, `term_id`, `taxonomy`, `description`, `parent`, `count`) VALUES (NULL, '21', 'post_tag', '', '0', '0');
现在我想在两个表中添加term_id ..有人可以告诉我该怎么办?
AND term_id
是数据库生成的值。
答案 0 :(得分:1)
INSERT INTO `steve`.`wp_term_taxonomy` (`term_taxonomy_id`, `term_id`, `taxonomy`, `description`, `parent`, `count`) VALUES (NULL, LAST_INSERT_ID, 'post_tag', '', '0', '0');
如果我正确地按照你的第一个查询插入表并为该记录创建一个新的id,那么你想在下一个查询中使用该ID来插入另一个表吗?如果是这种情况,上述查询应该适用于您的第二个查询,使用LAST_INSERT_ID作为term_id值。
要使用新代码更新问题,我应该强调它应该使用:
$sql2 = "INSERT INTO " . $table2 . " (`term_taxonomy_id`, `term_id`, `taxonomy`, `description`, `parent`, `count`) VALUES (NULL, LAST_INSERT_ID, 'post_tag', '', '0', '0')";
$wpdb->query($sql);
$wpdb->query($sql2);
你在上面的方式是在执行它之前覆盖你的第一个查询。
另外我不明白你是如何将空值插入自动增量字段的,单独应该抛出一个错误。老实说,你的查询应该将查询的基本ID(自动增量)完全从这个查询中删除:
$ sql2 =“INSERT INTO”。 $ table2。 “(term_id
,taxonomy
,description
,parent
,count
)VALUES(LAST_INSERT_ID,'post_tag','','0','0' )“;
答案 1 :(得分:1)
mysql_query("INSERT INTO `steve`.`wp_terms` (`term_id`, `name`, `slug`, `term_group`) VALUES (NULL, 'tag99', 'tag99', '0')");
$lastInsertId = mysql_insert_id();
mysql_query("INSERT INTO `steve`.`wp_term_taxonomy` (`term_taxonomy_id`, `term_id`, `taxonomy`, `description`, `parent`, `count`) VALUES (NULL, '" . $lastInsertId . "', 'post_tag', '', '0', '0')");
注意:要使用mysql_insert_id(),term_id
中的wp_terms
必须设置为自动增量。
答案 2 :(得分:0)
你需要使用ALTER
表并将该列的定义/约束添加到另一个表中,这里是manual