0

我正在尝试使用 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 .. 有人可以告诉我该怎么做吗?

ANDterm_id是数据库生成的值。

4

3 回答 3

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 = "插入" 。$table2 。" ( term_id, taxonomy, description, parent, count) 值 (LAST_INSERT_ID, 'post_tag', '', '0', '0')";

于 2012-10-31T13:52:54.290 回答
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_idinwp_terms设置为自动递增。

于 2012-10-31T14:10:05.453 回答
0

您需要使用ALTER表并将该列的定义/约束添加到另一个表中,这是手册

于 2012-10-31T13:47:58.930 回答