我在这段代码中有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。
答案 0 :(得分:1)
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();
}
P.S。查看准备好的语句,而不是将变量连接到查询中。