【发布时间】:2011-07-31 13:57:08
【问题描述】:
我在插入 mysql 表时遇到问题。我有 3 个相关的表要在保存时插入,但我想确保所有查询都运行,或者都不运行。我已经在 C# 中完成了此操作,但我想知道如何在 PHP 中完成此操作。
【问题讨论】:
我在插入 mysql 表时遇到问题。我有 3 个相关的表要在保存时插入,但我想确保所有查询都运行,或者都不运行。我已经在 C# 中完成了此操作,但我想知道如何在 PHP 中完成此操作。
【问题讨论】:
为了实现全有或全无行为,您需要使用事务:
在 PHP 中,如果使用 PDO,您将需要使用 PDO::beginTransaction()、PDO::commit() 和 PDO::rollback() 方法。
如果使用 MySQLi,您需要使用 mysqli::commit() 和 mysqli::rollback() -- 在使用 mysqli::autocommit() 禁用自动提交之后。
要检测查询是否失败,您需要:
PDO::setAttribute(),以便在发生错误时引发异常。mysqli::query() 返回 false。【讨论】: