bil*_*sek 5 php mysql transactions lastinsertid
我有 2 个 MySQL 表
表#1 - 容器:
container_id INT (PK AI)
start_time DATETIME
Run Code Online (Sandbox Code Playgroud)
表#2 - 预订
reservation_id INT (PK AI)
reservation_time DATETIME
container_id INT (FK)
Run Code Online (Sandbox Code Playgroud)
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');
}
Run Code Online (Sandbox Code Playgroud)
我做错了什么?$r2 返回假。LAST_INSERT_ID() 不起作用
LAST_INSERT_ID()在任何上下文中工作,无论是事务还是用户定义的存储过程或用户定义的函数。
你的问题肯定不是LAST_INSERT_ID(),但更有可能的是你的代码的任何其他部分都失败了。
尝试检查是否存在错误并输出错误,以便能够读取错误消息并采取相应措施。
用于mysql_error()此。
| 归档时间: |
|
| 查看次数: |
7946 次 |
| 最近记录: |