我在插入mysql表时遇到问题。我有3个相关的表要在保存时插入,但我想确保所有查询都运行,或者都不运行。我在C#中做过这个,但我想知道如何用PHP做到这一点。
答案 0 :(得分:3)
为了拥有全部或全部行为,您将需要使用交易:
在PHP中,如果使用PDO,您将需要使用PDO::beginTransaction()
,PDO::commit()
和PDO::rollback()
方法。
如果使用MySQLi,则在使用mysqli::commit()
禁用自动提交后,您将需要使用mysqli::rollback()
和mysqli::autocommit()
。
要检测查询是否失败,您需要:
PDO::setAttribute()
,以便在发生错误时抛出异常。mysqli::query()
将返回false
。