php - 事务 MySql 和 php

标签 php mysql transactions

我对通过 php 脚本运行事务感到困惑。 在我的 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);

当我不给commit时,表中插入的记录为零。 只有当我发出提交命令时,记录才会出现。

另外请告诉我如果在 php 脚本中我开始事务然后不给出回滚或提交语句会发生什么

最佳答案

http://dev.mysql.com/doc/refman/5.5/en/commit.html :

By default, MySQL runs with autocommit mode enabled. This means that as soon as you execute a statement that updates (modifies) a table, MySQL stores the update on disk to make it permanent.

但是如果您明确指定 START TRANSACTION - 那么它就不会被考虑在内,因此您在一个应该提交的事务中工作。

关于php - 事务 MySql 和 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13287723/

相关文章:

php - 解释 MySQL 查询

php - 如何在上传过程中重命名图像文件

java - 在broadleaf安装中无法在mysql中创建表

java - 代理的 REQUIRES_NEW 方法不会回滚(spring)

Django:从事务角度看 save() 和 create() 的区别

php - 如何循环并清理递归数组 (PHP)

php - 一个文档如何使用 Doxygen 类属性?

php - 闭包重载 : is it possible to inspect the number of arguments a PHP closure has without executing it?

php - php 和 mysql 中的反斜杠

sql-server - 在分布式事务中检查约束绕过CATCH block