gpt4 book ai didi

php - 在事务中为两个表插入相同的键(1.主表2.外表)

转载 作者:行者123 更新时间:2023-11-29 12:43:36 26 4
gpt4 key购买 nike

我在此代码中有 2 个查询。 (在我的真实代码中,我有 6 个查询,并且需要事务)。

我不知道如何获取变量$category_id,因为该类别尚未放入数据库中(应该同时插入 - 全部或全无)

代码:

try {
$this->mysqli->begin_transaction();

$this->mysqli->query("INSERT INTO `category` (`name`) VALUES ('$category')");
$this->mysqli->query("INSERT INTO `subcategory` (`name`,`category_id` ) VALUES ('$subcategory','$category_id')");

$this->mysqli->commit();

}
catch (Exception $e) {
echo $e;
$this->mysqli->rollBack();
}

mysql 表:

    category:
---------
|id|name|

subcategory:
|id|name|category_id|

所以我需要一些解决方案,如何在查询之前知道$category_id的值是什么,或者如何修改查询以便归档数据库中的category_id。

最佳答案

LAST_INSERT_ID()这就是您想要的。

try {
$this->mysqli->begin_transaction();

$this->mysqli->query("INSERT INTO `category` (`name`) VALUES ('$category')");
$this->mysqli->query("INSERT INTO `subcategory` (`name`,`category_id` ) VALUES ('$subcategory', LAST_INSERT_ID())");

$this->mysqli->commit();

}
catch (Exception $e) {
echo $e;
$this->mysqli->rollBack();
}

附注查看准备好的语句,而不是将变量连接到查询中。

关于php - 在事务中为两个表插入相同的键(1.主表2.外表),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25772942/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com