sql >> Base de Datos >  >> RDS >> Mysql

PDO::ERRMODE_EXCEPTION no suprime la advertencia

Me atrevería a decir que es un error. Encontré dos tickets relevantes:

  • Error n.º 63812 :Advertencia(s) de activación de PDO independientemente de la estrategia de manejo de errores, presentada en 2012 para PHP/5.3.19
  • Error n.º 74401 :La advertencia de activación de PDO ya estableció una excepción de lanzamiento, presentada en 2017 para PHP/7.0.17

En cualquier caso, todavía están abiertos y no está del todo claro si son problemas válidos (aunque sospecho que lo son). No parece ser una decisión de diseño porque otros errores de MySQL no activan tanto la advertencia como la excepción:

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