我很困惑通过php脚本运行事务。 在我的MySql自动提交设置为1, 但是当我运行一个脚本时
ex: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脚本中我启动事务然后不提供回滚或提交语句会发生什么
答案 0 :(得分:0)
http://dev.mysql.com/doc/refman/5.5/en/commit.html:
默认情况下,MySQL在启用自动提交模式的情况下运行。这意味着只要执行更新(修改)表的语句,MySQL就会将更新存储在磁盘上以使其永久化。
但是如果你明确指定START TRANSACTION
- 那么它就不会被考虑在内,所以你在一个应该提交的事务中工作。
答案 1 :(得分:0)
尝试这样做。
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");