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

Debug PDO - Visualizza query DOPO il collegamento?

Questo è il mito più comune sul debug di SQL. "Ho bisogno di vedere la query dopo la preparazione per poter sapere se si è verificato un errore". Il fatto è che non lo fai , e ti spiego perché.

Una volta che una query è stata preparata, il segnaposto può essere considerato come una stringa/intero valido . Non ti interessa cosa c'è dentro.

Inoltre, se imposti correttamente PDO, otterrai una PDOException dettagliata dettagliando l'errore che hai avuto insieme a un backtrace completo di dove si è verificato l'errore, inoltre ottieni la stringa di errore da MySQL, il che rende gli errori di sintassi molto facili da trovare.

Per abilitare le eccezioni PDO e disabilitare l'emulazione prepara:

$pdo = new PDO("mysql:host=localhost;dbname=database_name", "user", "password");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);