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

PDO::ERRMODE_EXCEPTIONは警告を抑制しません

    あえてバグだと思います。関連するチケットが2つ見つかりました:

    • バグ#63812 :エラー処理戦略に関係なく、PHP/5.3.19用に2012年に提出されたPDOトリガー警告
    • バグ#74401 :PDOトリガー警告はすでにスロー例外を設定しており、2017年にPHP/7.0.17で提出されました

    いずれにせよ、それらはまだ開いており、それらが有効な問題であるかどうかは完全には明らかではありません(私はそれらが有効であると思いますが)。他のMySQLエラーは警告と例外の両方をトリガーしないため、これは設計上の決定ではないようです。

    $connection = new PDO('mysql:host=127.0.0.1;dbname=test', 'test', 'test',
        [PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING]);
    $connection->query('SELECT * FROM foo');
    
    $connection = new PDO('mysql:host=127.0.0.1;dbname=test', 'test', 'test',
        [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
    $connection->query('SELECT * FROM foo');
    


    1. C#のDateTimeをyyyy-MM-dd形式に変換し、MySqlDateTimeフィールドに保存します

    2. SQL Serverのスパース列:時間とスペースへの影響

    3. Sinh()がPostgreSQLでどのように機能するか

    4. Dockerコンテナ上のPostgreSQLデータベースに接続します