Php 为什么我的数组返回重复信息?
我对PHP的PDO有点陌生,我想知道它为什么会做一些奇怪的事情。我有以下代码(按预期工作) 然而,我很好奇为什么它会返回一个看似重复的响应。这是它返回内容的一个示例:Php 为什么我的数组返回重复信息?,php,pdo,Php,Pdo,我对PHP的PDO有点陌生,我想知道它为什么会做一些奇怪的事情。我有以下代码(按预期工作) 然而,我很好奇为什么它会返回一个看似重复的响应。这是它返回内容的一个示例: /file.php:X: array (size=X) 'id' => string '2' (length=1) 0 => string '2' (length=1) 'fullname' => string '' (length=0) 1 => string '' (length=0)
/file.php:X:
array (size=X)
'id' => string '2' (length=1)
0 => string '2' (length=1)
'fullname' => string '' (length=0)
1 => string '' (length=0)
'email' => string 'bob@example.com' (length=15)
2 => string 'bob@example.com' (length=15)
...
我的数据库中有
ID
、fullname
和email
等列,但是为什么它还会返回两次键值对,而第二个键值对默认为基于int的键?您没有指定所需的获取样式,默认情况下,它被设置为PDO::FETCH_BOTH
,这就是为什么会得到重复的数据。因此,您需要指定返回数组的所需样式(按数字或字符串索引,也称为关联数组或对象…),您需要更改此行:
$result = $query->fetch();
要获取关联数组,请执行以下操作:
$result = $query->fetch(PDO::FETCH_ASSOC);
或者,此操作用于获取由从0开始的数字索引的经典数组:
$result = $query->fetch(PDO::FETCH_NUM);
还有更多的抓取样式,您可以查看php手册了解更多信息
希望我能进一步推动你。看看
fetch\u style
或mode
$query->fetch(\PDO::fetch\u ASSOC)
。基本上,它同时返回一个关联数组和一个索引数组AKAFETCH\u both
。对我来说,我总是设置$PDO->setAttribute(\PDO::ATTR\u DEFAULT\u FETCH\u MODE,\PDO::FETCH\u ASSOC)
然后默认值只是关联数组…..)
$result = $query->fetch(PDO::FETCH_NUM);