我是使用$ pdo语句的新手,所以可能很简单,我尚未在php.net上阅读。查询数据库时收到重复的结果。
结果:
[0] => Array
(
[umeta_id] => 31
[0] => 31
[user_id] => 2
[1] => 2
[meta_key] => fbmeta
[2] => fbmeta
[meta_value] => someMetaValueStuff;
[3] => someMetaValueStuff;
)
查询非常简单:
function getData(){
global $pdo;
$query = $pdo->prepare('SELECT * FROM usermeta WHERE meta_key = "fbmeta" LIMIT 0,30');
$query->execute();
return $query->fetchAll();
}
print_r( getData() );
问题在于命名键(
umeta_id
,user_id
,meta_key
,meta_value
)确实存在,而数字键不存在。查询如何返回这些?以及如何防止他们被退回? 最佳答案
它不是重复的,只是您正在使用的当前FETCH_MODE
。要仅获取关联密钥,您需要这样指定:默认情况下,两者同时获取。
像这样使用:
$query->fetchAll(PDO::FETCH_NUM); // to fetch with numeric indexes
$query->fetchAll(PDO::FETCH_ASSOC); // to fetch with associative indexes
fetchAll docs
fetch docs
关于php - PDO返回了不正确但重复的数据。 key 不在数据库中。,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57157383/