为什么我在PHP中两次获得同一列?PostgreSQL查询?

JoeBe:

我有一个Postgres数据库,可以使用PHP脚本从中检索数据。在此脚本中,我通过PDO连接:

$connection = new PDO('pgsql:host=' . $host . ';dbname=' . $database, $username, $password);

然后,我有一个查询,应该只列出id每个实例的:

$query = 'SELECT id FROM my_table WHERE "myCondition" = TRUE';

然后我得到查询的结果:

$result = $connection->prepare($query) or die($connection->error);
$result-> execute();

最后,我打印结果:

foreach($result AS $row) {
    echo var_dump($row);
};

现在我的问题是$row,即使我只要求返回,我也会在浏览器中为每个值得到两个值的数组id

array(2){[“ id”] =>字符串(3)“ GNQ” [0] =>字符串(3)“ GNQ”}

所以我不知何故获得了第二个值,再次使用,id但是使用了不同的键标识符(在这种情况下是索引)。我在这里做错了什么?

毁灭:

由于PDO提取类型,它两次返回相同的值。默认值为PDO::FETCH_BOTH“返回从0开始索引并具有名称的列”。如果您只想返回命名索引,只需将第四个参数添加到带有选项数组(https://www.php.net/manual/zh/pdo.construct.php)的PDO构造函数中

$connection = new PDO(
    'pgsql:host=' . $host . ';dbname=' . $database, 
    $username, 
    $password, 
    [\PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_OBJ]
);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章