我对通过php脚本运行事务的abt感到困惑。在我的MySql自动提交中,设置为1,但是当我运行一个脚本时
例:mysql_query(“开始交易”);
$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);当我不提交时,表中插入的记录为零。只有当我发出提交命令时,记录才会出现。
还请告诉我,如果我在php脚本中启动事务,然后不给回滚或提交语句,会发生什么?
发布于 2012-11-08 11:04:49
http://dev.mysql.com/doc/refman/5.5/en/commit.html
默认情况下,MySQL运行时启用了自动提交模式。这意味着,一旦执行更新(修改)表的语句,MySQL就会将更新存储在磁盘上,使其永久化。
但是,如果您显式地指定了START TRANSACTION,那么它就不会被考虑到,所以您在一个应该提交的事务中工作。
发布于 2012-11-08 11:11:42
试着这样做。
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");https://stackoverflow.com/questions/13287723
复制相似问题