|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : février 2011 Messages : 9 ![]() |
Salut,
Je passe de mysql_ à pdo et j'aimerais pouvoir afficher une erreur lorsqu'une requête ne passe pas et aussi afficher cette requête... Alors j'ai vu l'utilisation du try/catch() mais je vois également dans la doc : - PDO::errorInfo() - Retourne les informations associées à l'erreur lors de la dernière opération sur la base de données - PDOStatement::errorCode() - Récupère le SQLSTATE associé lors de la dernière opération sur la requête - PDOStatement::errorInfo() - Récupère les informations sur l'erreur associée lors de la dernière opération sur la requête Cependant je n'arrive pas à utiliser ces méthodes... Code :
- J'aimerais savoir si je peux afficher une erreur sql lisiblement sans try/catch() ? (un peu à la manière d'un mysql_error()) - J'aimerais savoir si je peux afficher ma requête (bonne ou mauvaise) après exécution afin de la relire... Merci pour votre aide |
||
|
|
00
|
|
|
#2 | |||
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Le code devrait être :
Code :
Concernant errorInfo, pour une requête préparée, c'est l'objet PDOStatement, et non PDO, qui doit servir de référent. Dixit la doc : Citation:
|
|||
|
|
00
|
|
|
#3 | ||
|
Invité de passage
![]() Inscription : février 2011 Messages : 9 ![]() |
Ok pour cette réponse,
Cependant quand j'essaye: Code :
il n'y a donc rien de plus simple qu'un try/catch pour afficher une erreur ?? Comment s'utilise ce fameux "errorInfo()" ? Le mystère reste entier pour afficher la requête exécuté dans le navigateur... Si quelqu'un à des infos, je suis preneur |
||
|
|
00
|
|
|
#4 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Relisez le code que j'avais corrigé (les corrections sont en gras)
$c : votre objet PDO. $result : l'objet PDOStatement correspondant à votre requête. Quant à la gestion des erreurs, chacun fait comme bon lui semble (exceptions, avec ou sans try - set_exception_handler, ou non). Tout dépend des besoins et de ce qui paraît le moins "lourd". |
|
|
00
|
|
|
#5 | ||
|
Invité de passage
![]() Inscription : février 2011 Messages : 9 ![]() |
Code :
|
||
|
|
00
|
|
|
#6 |
|
Membre chevronné
![]() Inscription : juin 2004 Messages : 747 ![]() |
Il faut changer les 3 petits points dans les parenthèses de PDO() par quelque chose...
__________________
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : février 2011 Messages : 9 ![]() |
LOL merci c'est ma connexion j'ai mis "..." pour abréger et éviter d'inscrire 'localhost', pseudo, mdp etc ... sinon le reste du code n'aurait pas fonctionner du tout lol.
|
|
|
00
|
|
|
#8 |
![]() ![]() Inscription : septembre 2010 Messages : 7 101 ![]() |
fais un try...catch sur ta connexion :
http://www.php.net/manual/fr/pdo.construct.php et active la gestion des erreurs : http://php.net/manual/fr/pdo.error-handling.php
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#9 | |
|
Membre chevronné
![]() Inscription : juin 2004 Messages : 747 ![]() |
Citation:
__________________
|
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : février 2011 Messages : 9 ![]() |
Okay merci ça fonctionne mieux !!!
et je suis gourmand, mais auriez-vous une idée pour afficher la requête après exécution ?? |
|
|
00
|
|
|
#11 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
On peut récupérer le SQL de la requête préparée via l'attribut queryString (associé éventuellement à la méthode debugDumpParams).
Sinon il faut passer par une surcharge de PDOStatement notamment (de ce genre) ou le profiler (du moins pour MySQL). |
|
|
00
|
|
|
#12 |
|
Invité de passage
![]() Inscription : février 2011 Messages : 9 ![]() |
Ok merci à vous tous ! sujet résolu !!
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com