59 votes

Comment se faufiler le message d’erreur sur l’AOP ?

Je n’arrive pas à obtenir le message d’erreur de PDO

seulement de donner

setAttribute n’aide pas n’importe quoi.

Son PHP 5.3.3 gestionnaire d’Apache 2.0
Driver PDO pour MySQL activée
API cliente version mysqlnd 5.0.7-dev - 091210 - $Revision : 300533 $

Que puis-je faire pour obtenir des informations d’erreur ?

65voto

Pekka 웃 Points 249607

setAttribute va provoquer PDO pour jeter des erreurs ou des exceptions - au plus tard lorsque vous exécutez la requête.

Pour émulé déclarations préparées à l'avance, il n'y a pas de case en prepare():

Des émules les requêtes préparées ne pas communiquer avec le serveur de base de données donc, PDO::prepare() ne vérifie pas l'état.

Mais il y en aura dans execute() lorsque la requête est envoyée au serveur.

Toutefois, le pilote mySQL prend en charge les requêtes préparées depuis mySQL 4.1, de toute façon, donc il ne devrait pas s'appliquer. À l'aide de

$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

doit provoquer une exception pour la requête que vous utilisez.

4voto

CINCHAPPS Points 42

Moi aussi, j'essayais d'obtenir les informations à partir d' errorInfo() à la base de données poignée de niveau, mais j'ai fini par obtenir les informations à partir de la déclaration de niveau avec PDOStatement::errorInfo()

Par site web PHP:

PDO::errorInfo() récupère uniquement les informations d'erreur pour les opérations effectuées directement sur la base de la poignée. Si vous créez un objet PDOStatement par PDO::prepare() ou PDO::query() et invoquer une erreur sur le descripteur d'instruction, PDO::errorInfo() ne reflète pas l'erreur de la déclaration de la poignée. Vous devez appeler la méthode PDOStatement::errorInfo() pour renvoyer les informations d'erreur pour une opération effectuée sur un descripteur d'instruction.

2voto

shamittomar Points 20136

Vous devez d’abord `` la requête et puis recherchez les erreurs : donc le faire comme ceci :

et puis recherchez les erreurs. Alors vous obtiendrez des erreurs, le cas échéant.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X