これは私のAndroid
アプリケーションに接続するPHP Service
に接続していて、すぐに2つのクエリを実行します。私は1つが失敗したかどうかを検出する方法を読んだことがあります。イベントスロットが既に0で、INT unsigned
であるため、私の1つが失敗することがわかりました。PHP PDO - 複数のステートメント - 1が失敗した場合、他を実行しない
ただし、他のステートメントは成功し、実行されます。明らかに、私は両方を実行したいだけです.1が失敗すると、don't execute anything at all
が、私のアプリケーションにエラーを返します。
ステートメントの1つが失敗し、STOP the other
が実行されていない場合、どうすれば検出できますか?私はおそらく複数のステートメントを使用することを避けることができますし、それがOKであったかどうかを確認してからもう一度実行します。私は複数のステートメントでそれを達成することはできますか?
クエリ:
"INSERT INTO GuestList(EventID, AccountID) VALUES (7, (SELECT AccountID FROM Accounts WHERE Username = 'test'));
UPDATE Events SET EventSlots = EventSlots-1 WHERE EventID = 7 ;"
トランザクションを使用するhttp://php.net/manual/en/pdo.begintransaction.php – JimL
最初の文が(書いたように)失敗した場合は、なぜ何かを実行する必要がありますか?すべての情報が含まれているので、あなたはそれを実行することを知っています。 – arkascha
ありがとう@ジム私はそれらについて知りませんでした。非常に役に立つと思われる、私は今それらを試してみましょう。そして、 'arkascha'、私は特定のユースケースをテストしているので、これを知っています。ユーザーがすでに利用可能な0スロット(私は知っているが、彼はそうではない)のイベントに参加しようとすると、アプリケーションでハンドラを実装するためにEventSlotsを0に設定します。 – iBobb