0
我在插入mysql表时遇到问题。我有3个相关的表插入保存,但我想确保所有的查询都运行,或者没有。我已经在C#中完成了这项工作,但是我想知道如何在PHP中完成此工作。在mysql表中插入多个
我在插入mysql表时遇到问题。我有3个相关的表插入保存,但我想确保所有的查询都运行,或者没有。我已经在C#中完成了这项工作,但是我想知道如何在PHP中完成此工作。在mysql表中插入多个
为了有一个全有或全无的行为,你需要使用一个交易:
在PHP中,如果与PDO工作,你要使用PDO::beginTransaction()
,PDO::commit()
和PDO::rollback()
方法。
如果使用MySQLi,则需要使用mysqli::commit()
和mysqli::rollback()
- 在禁用与mysqli::autocommit()
的自动提交后。
要检测一个查询失败,你会想:
PDO::setAttribute()
所以在发生错误时抛出异常。mysqli::query()
返回false
。
谢谢你的回复。我正在使用核心的PHP。但我仍然对如何处理错误感到困惑。即我如何识别在查询执行过程中发生的错误。 – Abhilash 2011-04-07 10:36:35
注意以下事项也很重要:1)除非表使用InnoDB引擎,否则事务命令会被服务器忽略2)无论API如何,您也可以手动运行相应的SQL命令。 – 2011-04-07 10:39:25
我编辑了我的答案,提供了一些关于此的附加信息。 “core php”并没有太多意义:你必须使用扩展名*(PDO,mysql或mysqli)*连接到MySQL数据库 - 并且不应该再使用mysql *(不支持由最近版本的MySQL)* – 2011-04-07 10:40:11