PHP / MYSQL如何在事务中获取last_insert_id

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP / MYSQL如何在事务中获取last_insert_id脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我有2个 MySQL

#1 – 容器:

container_id INT (PK AI)
start_time DATETIME

表#2 – 预订

reservation_id INT (PK AI) 
reservation_time DATETIME
container_id INT (FK)

PHP代码

MysqLi_query($dbc,'SET AUTOCOMMIT=0');
MysqLi_query($dbc,'START TRANSACTION');

$q1 = "INSERT INTO container (start_time) VALUES
      ('2012-07-03 11:00:00')";
$q2 = "INSERT INTO reservation (reservation_time,container_id) VALUES
      ('2012-07-03 11:00:00',LAST_INSERT_ID())";

$r1 = MysqLi_query($dbc,$q1);
$r2 = MysqLi_query($dbc,$q2);

if ($r1 && r2){
    MysqLi_query($dbc,'COMMIT');
} else {
    MysqLi_query($dbc,'ROLLBACK');
}

我做错了什么? $r2返回false. LAST_INSERT_ID()不起作用

解决方法

LAST_INSERT_ID()适用于任何上下文,无论是事务还是用户定义的存储过程或用户定义的函数.

您的问题肯定不是LAST_INSERT_ID(),但更有可能是代码的任何其他部分失败.

尝试检查是否存在错误输出错误以便能够读取错误消息并采取相应措施.

使用MysqL_error().

脚本宝典总结

以上是脚本宝典为你收集整理的PHP / MYSQL如何在事务中获取last_insert_id全部内容,希望文章能够帮你解决PHP / MYSQL如何在事务中获取last_insert_id所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。