我希望有人知道这是怎么回事。我从来没有见过这样的事情。我试图使用结果中的'code'的值将索引数组的结果重新键入到键控数组中,因为它是唯一键。这发生在两个PHP 5.4.16和PHP 7.0.10使用PDO获取时的意外输出
下面的代码非常奇怪的输出:
$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;
}
这将产生以下的输出:
'alue of code is '1286
] => Array
(
[code] => 1286
[EmployeeID] =>
[Name] =>
)
注意如何的价值在单引号和V值被切断后,$ row ['code']被打印到STDOUT。这导致我的重新键入数组($ rows)没有键值。我之前从数据库结果中重新键入了数组,并且在我开始使用PDO之前从未遇到任何问题。任何人有任何想法?
我简化通过发出报价:
print "Value of $key is '"."{$row[$key]}"."'\n";
这就造成:
'alue of EmployeeCode is '1286
我困惑为什么它切断了 'V' 的价值。
尝试从下一行删除括号。 '$ rows [$ row ['code']] = $ row;'。不知道它是否会有所作为,但语法很奇怪。 – aynber
是的,我已经尝试过,没有parens。同样的结果。但是,谢谢你。 –
'print“$ key的值是”。 “{$ row ['code']}”。 “\ n”;' - 给那个旋转。单引号内的连接关闭和'\ n'也是一个问题。 @ToddHammer –