【发布时间】:2011-02-12 02:06:57
【问题描述】:
我真的没有找到使用 MySQL 事务的 PHP 文件的正常示例。你能给我看一个简单的例子吗?
还有一个问题。我已经做了很多编程并且没有使用事务。我可以在header.php 中放置一个PHP 函数或其他东西,如果一个mysql_query 失败,那么其他的也会失败吗?
我想我已经想通了,对吗?:
mysql_query("SET AUTOCOMMIT=0");
mysql_query("START TRANSACTION");
$a1 = mysql_query("INSERT INTO rarara (l_id) VALUES('1')");
$a2 = mysql_query("INSERT INTO rarara (l_id) VALUES('2')");
if ($a1 and $a2) {
mysql_query("COMMIT");
} else {
mysql_query("ROLLBACK");
}
【问题讨论】:
-
你可以用
mysql_query("BEGIN");代替序列mysql_query("SET AUTOCOMMIT=0");mysql_query("START TRANSACTION"); -
Please, don't use
mysql_*functions in new code。它们不再维护and are officially deprecated。看到red box?改为了解prepared statements,并使用PDO 或MySQLi - this article 将帮助您决定哪个。如果你选择 PDO,here is a good tutorial. -
是否“mysql_query("SET AUTOCOMMIT=0");"将所有连接设置为等待提交功能还是仅用于其相关连接?
-
@Neal,实际上
mysqlwun die 尽管已被弃用,但它将永远在 PECL 中可用。 -
@Pacerier 被弃用的东西不会“死”。它们是为遗留软件正式举行的,但不再被维护,也不再受到新软件的任何推荐实践的影响。事实依然如此,不要使用
mysql
标签: php mysql transactions