PDO::exec()
関数は、影響を受ける行の数を返します。影響を受ける行がない場合は0を含みます。
このような行はdie()
exec
0
を返します これはブール値のfalseとして解釈されます。
$dblink->exec("UPDATE `sometable` SET `somecolumn`=0 WHERE `somecolumn`=0") or die("Never use die for error handling.");
PDOの最良のエラー処理方法は、PDO例外を使用することです。次のように(PDOExceptionクラスの)PDO例外を有効にします。
//enable Exception mode (uncaught exceptions work just like die() with the benefit of giving you details in logs of where execution was stopped and for what reason)
$pdoDBHandle->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
or die()
を削除します およびexit();
例外モードを有効にします。私はこれがあなたの「奇妙な」問題を解決するに違いない。また、手続き型コード(die()
を置き換える)を使用した場合でも、PHPで例外をスローする方法を確認してください。 およびexit()
。
ところでexit
die
と同じように実行を停止します ただし、オペレーティングシステムに成功/エラーコードを返すため、CLIモードで役立ちます。実際にはエラー処理を目的としたものではありません。