begin process at 2012 05 30 18:38:04
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

PDO et une erreur de requête


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

PDO et une erreur de requête

mercredi 17 août 2011 à 18:23:01 | PDO et une erreur de requête

fabienfs

Membre Club Administrateur CodeS-SourceS

Hello,

M'initiant actuellement à PDO avec MySQL, je me pose la question suivante : y a t'il une gestion des erreur en PDO comme avec mysql_query ? Lorsque je fais une erreur dans ma requête avec mysql_query, j'ai une erreur php qui me dis que j'ai une erreur dans ma requête. Avec PDO par contre, j'ai une erreur 500 sans explication. Doit-on passer par un try/catch ?

D'avance merci pour votre aide :-)

Belle soirée,

A++

Fabien Schenkels (alias fabienfs)
mercredi 17 août 2011 à 18:30:49 | Re : PDO et une erreur de requête

kohntark

Membre Club
Re,

j'ai une erreur 500 sans explication


humm ... c'est à dire ? quelle est l'erreur complète ?

Avec PDO tu peux paramétrer le mode de fonctionnement des erreurs avec setAttribute (cf PDO::ATTR_ERRMODE)

Vois également les méthodes errorCode() et errorInfo()

Cordialement,



Kohntark -
mercredi 17 août 2011 à 18:34:16 | Re : PDO et une erreur de requête

fabienfs

Membre Club Administrateur CodeS-SourceS

Re :)

Autant pour moi, ce n'est plus une erreur 500 que j'ai mais aucun résultat qui s'affiche tout simplement.
Lorsque je fais une erreur dans ma requête MySQL, je n'ai rien qui s'affiche. J'aimerais avoir un message d'erreur à la place :-)

Je regarde ton lien sur setAttribute

A++

Fabien Schenkels (alias fabienfs)
mercredi 17 août 2011 à 18:42:46 | Re : PDO et une erreur de requête

fabienfs

Membre Club Administrateur CodeS-SourceS

Ok,

j'ai bien rajouté la ligne ci-dessous juste après ma connexion à ma base de donnée MySQL.

Code PHP :
$connexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);


Pour pouvoir avoir un message d'erreur lors d'un problème dans une de mes requête MySQL, je suis donc obligé quand même de mettre un bloc try/catch comme ceci : ?

Code PHP :
try{
    $resultats = $connexion->query("SELECT * FROM membres ORDER BY id ASC"); 
    $resultats->setFetchMode(PDO::FETCH_ASSOC); 
}
catch (Exception $e)
{
    die('Erreur : ' . $e->getMessage());
}
while( $ligne = $resultats->fetch() ) // on récupère la liste des membres
{
        echo 'Nom : '.$ligne->nom.'<br />'; 
}
$resultats->closeCursor(); // on ferme le curseur des résultats


A++

Fabien Schenkels (alias fabienfs)
mercredi 17 août 2011 à 18:53:30 | Re : PDO et une erreur de requête

kohntark

Membre Club
Si tu lèves une exception et que tu veux l'attraper oui.
Si tu ne le fais pas elle s'affichera en "exception non attrapée", à condition bien sur que l'affichage des erreurs soit activé.

Tu peux également définir un gestionnaire d'erreurs / exception personnalisé.

Cordialement,

Kohntark -
mercredi 17 août 2011 à 19:06:30 | Re : PDO et une erreur de requête

fabienfs

Membre Club Administrateur CodeS-SourceS
Merci pour ta réponse :-)

Qu'est ce qu'une exception non attrapée ? Sont-elles visibles quelque part ?

En ce qui concerne pour erreur 500, j'ai pu la reproduire.
Si je n'utilise pas de try/catch et que j'exécute cette requête :

Code PHP :
$resultats = $connexion->query("SELECT * FROM membres WHERE id=".$_GET["id"]." ORDER BY id ASC");


Si dans mon get je demande volontairement : ?id='1. Il m'affiche une erreur 500. Est-ce normal ?

A++

Fabien Schenkels (alias fabienfs)


Cette discussion est classée dans : mysql, erreur, requête, query, pdo


Répondre à ce message

Sujets en rapport avec ce message

Erreur dans un script [ par philagui ] Bonjour,est-ce que quelqu'un pourrait me dire où est l'erreur dans ce script:$sql_query="SELECT Titre FROM Tableaux WHERE LIMIT 0,2";//Début de la que problème de requête [ par brice57 ] Bonjour, j'ai un problème avec la requête suivante que je ne parviens pas à exécuter sur une base Mysql:$query = "DELETE FROM Defi WHERE Passteam=".$p ## Où est l'erreur ???? bon diou !! [ par kodiask ] voila dite moi pourkoi lorsque je met le code la, il n'y a rien ki saffiche ? (c un système de citation aléatoire)mysql_select_db('cit_tbl',$db); $que sil vou plé où est l'erreur ? [ par kodiask ] voilà g fai un système de citation au hazard et kanje met le code là il maffiche rien du tout , pourkoi ? merci ....mysql_select_db('cit_tbl',$db); $q Tester le résultat d'une requête MySQL avant fetch [ par Evangun ] Bonsoir à tous ! j'espérais faire qqch du genre : $query = mysql_query("select * FROM `table` where car = '0'"); if(!empty($query)){         echo 'I Sous-requête avec MYSQL [ par bonjovi51 ] Bonjour à toutes et à tous Je voudrai svoir si MYSQL Supporte les sous requêtes. Si oui, j'aimerai bien voir où se trouve mon erreur. Voilà, je vous PDO : Use ?; [ par codefalse ] Bonjour à tous !Voila j'aimerai effectuer une requête sur mon serveur mysql pour lui indiquer quelle base de donnée utiliser, donc pour ce faire je fa Requête sur une table dépendant d'une autre requête [ par phil7799 ] Bonjour, j'essaye de faire une requête qui dépend du résultat d'une autre requête mais je n'y parviens pas.Dans une table, "popularite" j'extrais les Erreur de code [ par elriser ] je débute et j'ai un souci avec ce bout de code:$query = "SELECT * FROM infos WHERE etat-cmd=nc ORDER BY 'num-cmd'";$result = mysql_query($query, $lin Bien utiliser mysql_query('SET NAMES UTF8') [ par jmp kjm ] Bonjour, Mon site ramant un peu j'ai fait une analyse de performances et voici deux conclusions : - 30,9 % du temps d'exécution est passé dans la req


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,232 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales