【问题标题】:PDO: Remove duplicates of the query's results [duplicate]PDO:删除查询结果的重复项 [重复]
【发布时间】:2018-04-18 00:01:12
【问题描述】:

当我使用 PDO 执行语句时,它总是返回重复的结果,即一个版本带有数字索引,另一个带有列名。

例如:

<?php
$db = new PDO('mysql:dbname=test;host=localhost','root','');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

try {
    $stmt = $db->query('SELECT * FROM Person');
    $ret = $stmt->fetchAll();
    print_r($ret);
} catch (PDOException $e) {
    echo 'Error: '.$e->getMessage();
}
?>

我明白了:

Array (
    [0] => Array (
        [name] => Stanchi 
        [0] => Stanchi 
        [surname] => Jacopo 
        [1] => Jacopo)
    [1] => ...
)

但我只想:

Array (
    [0] => Array (
        [name] => Stanchi 
        [surname] => Jacopo)
    [1] => ...
)

我该怎么办?

感谢您的帮助。

【问题讨论】:

  • 您在编号和关联数组中都得到了结果。你也可以只获取关联数组。

标签: php pdo


【解决方案1】:

您的 fetchAll 调用的第一个参数应该是 PDO::FETCH_ASSOC

http://php.net/manual/en/pdostatement.fetch.php

【讨论】:

  • 谢谢,如果只需要数字索引,那么获取方式是什么?
  • PDO::FETCH_NUM你会得到一个数字索引数组
  • 如果我使用 foreach ($this->db->query($q) as $i ) 怎么办?
  • 我认为您可以将其作为第二个参数传递。不是 100% 确定
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-25
  • 2018-12-08
  • 2011-12-09
  • 1970-01-01
  • 2017-07-02
相关资源
最近更新 更多