Lire avec PDO/FetchAll

Eléphant du PHP | 83 Messages

24 oct. 2014, 11:02

Bonjour,

je suis en train de convertir un vieux code qui utilisait les fonctions mysql_xxx en les remplaçant par PDO. J'ai un problème pour lire des données (pour remplacer mysql_fetch_array).

Voici mon code :
$bdd = connect();
$sql='SELECT pwd FROM `conf` WHERE lastname = :nom';
echo "<br/>sql=".$sql."<br/>";


$qid = $bdd->prepare($sql);
$qid->execute(array(':nom'=>$nom));
$ligne=$qid->fetchAll();
echo "var_dump:";
var_dump($ligne);

echo "pwd sql=".$ligne[0]['pwd']." pwd form=".$pwd."<br>";
Le var_dump affiche bien pwd mais $ligne[0]['pwd'] vaut NULL ; pourquoi ?

ynx
Mammouth du PHP | 586 Messages

24 oct. 2014, 11:21

Salut,

Qu'affiche le var_dump exactement ?

Eléphant du PHP | 83 Messages

24 oct. 2014, 11:28

var_dump:array(1) { [0]=> array(1) { ["pwd"]=> string(7) "---" } }
pour
echo "var_dump:";
var_dump($ligne);

ViPHP
xTG
ViPHP | 7331 Messages

24 oct. 2014, 13:34

Tu es sûr d'exécuter le code que tu nous montres ?
Car il n'y a pas de raison de retourner NULL s'il l'affiche avant. :|

ynx
Mammouth du PHP | 586 Messages

24 oct. 2014, 14:15

Effectivement, je ne vois pas non plus de raison de ce retour.
var_dump($ligne); // array(1) { [0]=> array(1) { ["pwd"]=> string(7) "---" } }
var_dump($ligne[0]); //  array(1) { ["pwd"]=> string(7) "---" }
var_dump($ligne[0]['pwd']); // string(7) "---"
Par contre dans le code de ton premier message, la variable $pwd n'est pas définie, c'est donc elle qui doit te retourner la valeur NULL.

Eléphant du PHP | 83 Messages

24 oct. 2014, 14:50

Il y a effectivement de quoi se poser des questions : j'avais ce problème depuis hier, et depuis 10', ça marche ! (Sans rien changer). Le code que je montrais était bien exécuté et $pwd était bien définie, mais pas dans le bout de code que je montrais ; 3 lignes avant : $pwd=$_POST['pwd'];