PHP PDO - 多个语句 - 如果 1 失败,则不执行另一个
PHP PDO - Multiple Statements - if 1 fails, don't execute the other
所以我得到了这个 PHP Service
,它连接到我的 Android
应用程序,它一次执行 2 个查询。我已经阅读了如何检测一个是否失败并且我知道我的一个失败是因为 EventSlots 已经是 0 并且是一个 INT unsigned
。
然而,另一个语句成功并被执行。显然,我只想同时执行两者,如果 1 失败,don't execute anything at all
但 return 是我的应用程序的错误。
我如何检测其中一个语句是否失败并且 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 ;"
使用 PDO 事务 http://php.net/manual/en/pdo.transactions.php。事务代表一堆必须以原子方式执行的查询。如果在交易过程中出现问题,它将自动执行回滚到初始状态。
所以我得到了这个 PHP Service
,它连接到我的 Android
应用程序,它一次执行 2 个查询。我已经阅读了如何检测一个是否失败并且我知道我的一个失败是因为 EventSlots 已经是 0 并且是一个 INT unsigned
。
然而,另一个语句成功并被执行。显然,我只想同时执行两者,如果 1 失败,don't execute anything at all
但 return 是我的应用程序的错误。
我如何检测其中一个语句是否失败并且 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 ;"
使用 PDO 事务 http://php.net/manual/en/pdo.transactions.php。事务代表一堆必须以原子方式执行的查询。如果在交易过程中出现问题,它将自动执行回滚到初始状态。