J'espère que quelqu'un sait ce qui se passe avec ça. Je n'ai jamais rien vu de tel auparavant. J'essaye de re-key les résultats d'un tableau indexé à un tableau claveté en utilisant la valeur de 'code' dans les résultats car c'est une clé unique. Cela se produit à la fois PHP 5.4.16 et PHP 7.0.10Sortie inattendue lors de l'utilisation de PDO Fetch
Le code suivant produit une sortie très étrange:
$stmt = $conn->prepare($sql);
$stmt->execute($params);
$key = 'code';
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
print "Value of $key is '{$row['code']}'\n";
$rows[ ($row['code']) ] = $row;
}
Ceci produit la sortie suivante:
'alue of code is '1286
] => Array
(
[code] => 1286
[EmployeeID] =>
[Name] =>
)
Remarquez que la valeur de $ row ['code'] est imprimé sur STDOUT après les guillemets simples et la valeur V in est coupée. Cela provoque mon tableau re-keyed ($ rows) pour n'avoir aucune valeur de clé. J'ai réencodé des tableaux à partir des résultats de la base de données des milliers de fois auparavant et je n'ai jamais eu de problème jusqu'à ce que j'ai commencé à utiliser PDO. Quelqu'un a des idées?
I simplifié la citation par l'émission:
print "Value of $key is '"."{$row[$key]}"."'\n";
qui a abouti à:
'alue of EmployeeCode is '1286
Je suis mystifié pourquoi il est de couper le 'V' de la valeur.
Essayez de supprimer les parenthèses de la ligne suivante. '$ rows [$ row ['code']] = $ row;'. Je ne sais pas si cela fera une différence, mais la syntaxe est étrange. – aynber
Oui, je l'ai essayé avec et sans les parens. Même résultat Mais merci tho. –
'print" La valeur de $ key est ". "{$ row ['code']}". "\ n"; '- Donne un tourbillon. La concaténation est désactivée et '\ n' à l'intérieur des guillemets simples est également un problème ici. @ToddHammer –