为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我的 PHP 中同一列出现两次?PostgreSQL 查询?

为什么我的 PHP 中同一列出现两次?PostgreSQL 查询?

PHP
慕婉清6462132 2023-10-15 16:58:17
我有一个 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:数组(2) { ["id"]=> 字符串(3) "GNQ" [0]=> 字符串(3) "GNQ" }因此,不知何故,我得到了第二个值,再次使用id但具有不同的键标识符(在这种情况下是索引)。我在这里做错了什么?
查看完整描述

1 回答

?
慕仙森

TA贡献1827条经验 获得超7个赞

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

$connection = new PDO(

    'pgsql:host=' . $host . ';dbname=' . $database, 

    $username, 

    $password, 

    [\PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_OBJ]

);


查看完整回答
反对 回复 2023-10-15
  • 1 回答
  • 0 关注
  • 75 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信