我是使用$ 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
)是否存在,数字键不存在。为什么查询返回这些?我如何防止它们被退回?
答案 0 :(得分:22)
这不是重复,只是你正在使用的当前FETCH_MODE
。要获得关联键,您只需要指定;默认情况下,它同时取两者。
像这样使用:
$query->fetchAll(PDO::FETCH_NUM); // to fetch with numeric indexes
$query->fetchAll(PDO::FETCH_ASSOC); // to fetch with associative indexes
答案 1 :(得分:9)
答案 2 :(得分:-1)
似乎可以帮我解决这个问题。把它放在上面
use Illuminate\Database\Events\StatementPrepared;
每次获取时都包含pdo :: fetch_assoc
return($pdo->fetchAll(\PDO::FETCH_ASSOC));