我有一个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] 删除。
我来说两句