PHP PDO - 多个语句 - 如果1失败,则不执行另一个

时间:2016-03-20 20:39:45

标签: php android mysql pdo statements

所以我有PHP Service这个连接到我的Android应用程序,它一次执行2个查询。我已经阅读了如何检测一个是否失败,我知道我的一个失败,因为EventSlots已经是0并且是INT unsigned

但是,其他声明成功并被执行。显然,我想只执行两者,如果1失败,don't execute anything at all但是为我的应用程序返回错误。

我如何检测其中一个语句是否失败并且STOP the other是否正在执行?我可能可以避免使用多个语句并执行1,检查它是否正常,然后才执行另一个。我可以用多个语句来实现吗?

查询

"INSERT INTO GuestList(EventID, AccountID) VALUES (7, (SELECT AccountID FROM Accounts WHERE Username = 'test'));
 UPDATE Events SET EventSlots = EventSlots-1 WHERE EventID = 7 ;"

1 个答案:

答案 0 :(得分:1)

使用PDO交易http://php.net/manual/en/pdo.transactions.php。事务表示必须以原子方式执行的一堆查询。如果在事务期间出现故障,它将自动执行回滚到初始状态。