Mysql
 sql >> Base de données >  >> RDS >> Mysql

PDO::ERRMODE_EXCEPTION ne supprime pas l'avertissement

J'oserais dire que c'est un bug. J'ai trouvé deux tickets pertinents :

  • Bug #63812  :Avertissement(s) déclencheur(s) de PDO indépendamment de la stratégie de gestion des erreurs, déposé en 2012 pour PHP/5.3.19
  • Bug #74401  :L'avertissement de déclenchement PDO a déjà défini une exception de lancement, déposée en 2017 pour PHP/7.0.17

Dans tous les cas, ils sont toujours ouverts et il n'est pas tout à fait clair s'il s'agit de problèmes valides (bien que je soupçonne qu'ils le soient). Cela ne semble pas être une décision de conception car d'autres erreurs MySQL ne déclenchent pas à la fois l'avertissement et l'exception :

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