如何在两个不同的表中添加相同的值

时间:2012-10-31 13:43:36

标签: php database wordpress

我试图使用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是数据库生成的值。

3 个答案:

答案 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_idtaxonomydescriptionparentcount)VALUES(LAST_INSERT_ID,'post_tag','','0','0' )“;

答案 1 :(得分:1)

使用mysql_insert_id()

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