[英]Transactions MySql and php
我很困惑通过php脚本运行事务。 在我的MySql中,autocommit设置为1,但是当我运行脚本时
例如:mysql_query(“ START TRANSACTION”);
$sql="INSERT INTO
`address`(`Address_Id`,
`Address_Line1`,
`Address_line2`,
`Zip`,
`Created_By`,
`Created_Date`,
`Updated_By`,
`Updated_Date`)
VALUES ('2','this is test1','test2','210','SYSTEM','NOW()','SYSTEM','NOW()')";
mysql_query($sql);
当我不提交时,表中插入的记录为零。 仅当我给出commit命令时,记录才会出现。
还请告诉我如果在php脚本中启动事务然后不回滚或提交语句会发生什么情况?
http://dev.mysql.com/doc/refman/5.5/en/commit.html :
默认情况下,MySQL在启用自动提交模式的情况下运行。 这意味着,一旦执行更新(修改)表的语句,MySQL就会将更新存储在磁盘上以使其永久保存。
但是,如果您明确指定START TRANSACTION
则不会考虑到它,因此您需要进行应提交的事务。
尝试这样做。
mysql_query("BEGIN");
$query="";
$result=mysql_query($query);
if($result==0)
{
mysql_query("ROLLBACK");
echo $error_message;
// mysql_query($query_setId);
die();
}
mysql_query("COMMIT");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.