Android — PHP PDO — Несколько операторов — если 1 не удается, не выполняйте другой

Итак, у меня есть это 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 ;"

0

Решение

Использовать транзакции PDO http://php.net/manual/en/pdo.transactions.php . Транзакция представляет собой набор запросов, которые должны быть выполнены атомарным способом. Если во время транзакции произойдет сбой, он автоматически выполнит откат до исходного состояния.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]