|
|
|
|
Bonsoir, j'ai un petit souci avec une requete toute bête qui ne doit me renvoyer qu'une ligne :
Voici mon objet PDO :
<?php
$login='root';
$pwd='';
$db='mysql:host=localhost; dbname=edocks';
try{
$PDO = new PDO($db, $login, $pwd);
}
catch (PDOException $e){
die("Erreur de connexion : ".$PDO->getMessage() );
}
?>
$sql = "SELECT `poste_deb`, `poste_fin` FROM `dossiers` WHERE `designation` = '".$_SESSION['log'][2]."'"; $query = $PDO->query($sql); $resu = $query->fetchRow();
Fatal error: Call to a member function fetchRow() on a non-object in C:\Program Files\EasyPHP 2.0b1\www\edocks\include\send.php on line 20
Configuration: Windows XP Firefox 2.0.0.5
Alors, j'ai écrit ce message en toute hâte en partant du boulot, voilà un peu plus d'explications :
ID | ... | poste_deb | poste_fin | designation | ---------------------------------------------------------------- 24 | ... | 10 | 44 | LAP | - ma variable de session $_SESSION['log'][2] contient "LAP" Mon ancien code était constitué des commandes mysql classiques et fonctionnait parfaitement $query = mysql_query($sql, $connexion); $resu = mysql_fetch_assoc($query); Ce n'est donc je pense pas un problème de guillemets ou de syntaxe de la requête. PDO en théorie se révèle extrèmement interessant, mais en pratique sur l'intégralité de mon site j'ai du faire des arrangements pour faire fonctionner le tout (je pense par exemple à $foo->fetchAll() pour pouvoir inclure deux requêtes dans deux boucles imbriquées, enfin ce n'est pas le problème ici.) Donc pour te répondre Alain, non je ne crois pas que ça vienne de ça, j'ai bien regardé ma requête sous toutes les coutures et je ne vois pas. |
A la place de:
$sql = "SELECT poste_deb, poste_fin FROM dossiers WHERE designation='".$_SESSION['log'][2]."' " ; echo "Requette: ".$sql; // pour voir $query = $PDO->query($sql) or die (mysql_error()); // pour voir l'erreur renvoyée |
Non ça ne fonctionne toujours pas, il passe dans le or die mais ne m'affiche pas l'erreur mysql. Mais je crois que cette commande ne fonctionne pas avec PDO.
|
J'ai affiché PDO::errorCode() et PDO::errorInfo() pour voir
|
J'ai reglé mon problème en début d'après midi grâce à ce message d'erreur. J'ai rajouté dans mon fichier de connexion la ligne suivante :
|