Mysql
 sql >> Database >  >> RDS >> Mysql

PDO::ERRMODE_EXCEPTION non sopprime l'avviso

Oserei dire che è un bug. Ho trovato due biglietti rilevanti:

  • Bug #63812 :Avviso/i trigger PDO indipendentemente dalla strategia di gestione degli errori, depositato nel 2012 per PHP/5.3.19
  • Bug #74401 :avviso trigger PDO già impostato throw eccezione, depositato nel 2017 per PHP/7.0.17

In ogni caso, sono ancora aperti e non è del tutto chiaro se siano problemi validi (anche se sospetto che lo siano). Non sembra essere una decisione di progettazione perché altri errori MySQL non attivano entrambi, avviso ed eccezione:

$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');