mysql::query()
でUPDATEクエリを実行した後、mysqli::error
またはmysqli::errno
をチェックしてエラーメッセージまたは番号を確認できます。UDPDATEクエリの後に `mysqli :: errno`を検査して、トリガの致命的エラーか警告を確定する
これはエラーを記録するのに便利ですが、エラーの重大度に基づいて決定する必要があります。
- ロジックエラー(行が存在しない、値が無効)の場合は実行を中止する必要があります。
データベースにアクセスできない場合、または類似のものがあれば、エラーを記録するだけでプログラムの実行を停止する必要があります。
- エラー番号を検査できます。たとえば、列が不明な場合にエラー1054が返されます。問題は1000個のエラーの近くのmysqlマニュアルリストなので、問題に関連するエラー条件が1つしか欠落しても、どの方法が適切かはわからず、非常に危険になる可能性があります。
- その他の問題は、エラーが返されないために行がテーブルにない場合です。
この状態をチェックするための一般的なアプローチは何ですか?
問題は(少なくともUPDATESのために) 'mysqli :: query()'は単にTRUEまたはFALSEを返します。それ以降のエラーチェックは 'mysqli :: errno'に依存します。マニュアル(http://www.php.net/manual/es/mysqli.query.php)は、投げられる例外を指定していません。私は、エラーがプログラマーの障害かサーバーの問題かどうかを知りたい。クエリを実行する前に自分でチェックする必要がありますか? –
プログラマーのエラーはどういう意味ですか?この関数は失敗時には 'FALSE'を返し、成功時には 'TRUE'または結果識別子を返します。具体的に例を挙げて、アップデートで何をテストしたいですか? – hakre
プログラムが間違っているかどうかを知りたい。私が列が存在しないか、DBにない行を更新しようとしているとしましょう。これは起こらないはずの状況なので、コードをチェックする必要があります。この状況でシステムが別のパスをとる場合や、プログラマー以外のエラーが発生した場合(ディスクがいっぱいで、DBにアクセスできない場合など)に役立ちます。 –