gpt4 book ai didi

php - 事务在 php、mysql 中不起作用

转载 作者:行者123 更新时间:2023-11-29 23:55:27 24 4
gpt4 key购买 nike

我只是尝试使用 php 进行事务处理。但不起作用。这是代码

$conn = mysql_connect('localhost', 'root', '') or die (mysql_error());
mysql_select_db('users',$conn) or die (mysql_error());
$sql = 'INSERT INTO `login` (id ,username ,password ,isactive)VALUES (3, "rtyer", "edt6e4", "y");';
$sql1 = 'INSERT INTO `user` (
`f_name` ,
`l_name` ,
`age` ,
`place` ,
`loginid`
)
VALUES (
3, "dsgdhg", "yuity", 45, "fj", 3
);';
mysql_query("SET autocommit = off");
mysql_query("BEGIN");
mysql_query("START TRANSACTION");
$result1 = mysql_query( $sql, $conn );
$result2 = mysql_query( $sql1, $conn );
if(!$result2)
{
mysql_query("ROLLBACK");
echo "transaction rolled back";
exit;
}
else
{
mysql_query("COMMIT");
echo "Database transaction was successful";
}
mysql_close($conn);


sql1 中存在错误,因此数据没有插入到 user 表中,而是从 login 表中回滚。它进入 if block 但没有发生回滚。这里有什么问题吗?

最佳答案

删除此行中多余的分号并在值上使用双引号和单引号:

$sql = 'INSERT INTOlogin(id,用户名,密码,isactive)VALUES (3, "rtyer", "edt6e4", "y");'; <---这部分

进入此并对 $sql1 执行相同的操作

$sql = "INSERT INTO login (id,username,password,isactive)VALUES ('3', 'rtyer', 'edt6e4', 'y')"; <-- 已删除分号

$sql1 = "INSERT INTO `user` (
`f_name` ,
`l_name` ,
`age` ,
`place` ,
`loginid`
)
VALUES (
'3', 'dsgdhg', 'yuity', '45', 'fj', '3'
)";

关于php - 事务在 php、mysql 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25398744/

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