sql >> データベース >  >> RDS >> Mysql

PDOは、(特定のテーブル内の)データの行の削除を拒否します

    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モードで役立ちます。実際にはエラー処理を目的としたものではありません。




    1. 1つのテーブルから別のテーブルにデータを保存できません

    2. MySQLの複合FULLTEXTインデックス

    3. OracleのLOG()関数

    4. SQLServer2017でデータベースをバックアップする