gpt4 book ai didi

php postgresql pg_fetch_all

转载 作者:行者123 更新时间:2023-11-29 12:00:40 24 4
gpt4 key购买 nike

我在使用 pg_fetch_all (postgresql) 时遇到了一个奇怪的问题:它永远不会返回更多 tan 2 列

例如,这段代码:

    $dbh = pg_connect("host=localhost dbname=dbname user=user password=passwd");
$query = "SELECT m.id, v.nom, v.id FROM machine m, version v WHERE m.id_version = v.id;";
$result = pg_query($dbh, $query);
$array = pg_fetch_all($result);
print_r($array);

只打印我 m.id, v.nom !

如果我在 pg_my_admin 中粘贴完全相同的 SQL 请求,则返回每个列。

如果我将结果解析为

    $array = array();
while ($row = pg_fetch_row($result)) {
$array[] = $row;
}

它完美地工作。为什么?

最佳答案

这是因为你有两列同名(在两个不同的表中)。您需要使用这样的别名:

$query = "SELECT m.id AS mId, v.nom, v.id AS vId FROM machine m, version v WHERE m.id_version = v.id;";

然后您将能够检索名称为 mId 的列 m.id 和名称为 v.id vId您可以在 SQL here 中找到有关别名的更多信息

它与 pg_fetch_row() 一起工作的原因是因为这个返回结果基于查询中列的索引而不是关联数组。

关于php postgresql pg_fetch_all,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14714821/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com