• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:mysql データベース処理が途中で失敗したら?)

mysqlデータベース処理の途中で失敗した場合の対応方法

このQ&Aのポイント
  • mysqlのデータベース処理中に何らかの理由で失敗した場合、処理1が成功しても処理2が失敗する可能性があります。
  • この場合、特に対策を取らなければ処理2が失敗したことを検知することはできません。
  • そのため、処理が失敗した場合にはトランザクションを使用し、全ての処理が成功するまでロールバックするような記述をすることが重要です。

質問者が選んだベストアンサー

  • ベストアンサー
noname#244856
noname#244856
回答No.1

以下のリンクに全てまとめてあります。 Qiita - PHPでデータベースに接続するときのまとめ http://qiita.com/mpyw/items/b00b72c5c95aac573b71 【失敗したときにどうなるか】 PDO::ERRMODE_EXCEPTIONが有効 → PDOExceptionがスローされる PDO::ERRMODE_EXCEPTIONが無効 → executeの返り値がFALSEになる 返り値を毎回チェックするのは億劫なので、connectDb()の中でこのオプションを有効にしておくことを推奨します。 また、片方だけ失敗したら困る場合には「トランザクション処理」を行います。PDOExceptionをスローするように設定してある場合、Try~Catchを2重に設けて、内側でロールバックを実行する必要があります。(このあたりも記事に全部書いてるので読んでください。)

infinity38
質問者

お礼

ご回答いただきありがとうございます。 参考リンク、ありがとうございます。 「トランザクション処理」、私の考えていた不安はまさにこれでした。 これで解決できそうです。 この度は有益なご回答ありがとうございました。

関連するQ&A