Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Depuração de PDO - Exibir consulta APÓS BIND?


Esse é o mito mais comum sobre a depuração SQL. "Preciso ver a consulta após a preparação para saber se ocorreu um erro". O fato é que você não , e eu vou te dizer o porquê.

Depois que uma consulta é preparada, o espaço reservado pode ser considerado uma string/inteiro válido . Você não se importa com o que está nele.

Além disso, se você configurar o PDO corretamente, receberá uma PDOException detalhada detalhando o erro que você teve junto com um backtrace completo de onde o erro aconteceu, além de obter a string de erro do MySQL, o que torna os erros de sintaxe muito fáceis de encontrar.

Para habilitar Exceções de PDO e desabilitar preparações emuladas:
$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);