gpt4 book ai didi

php - pg_query() 似乎不在循环中执行查询

转载 作者:行者123 更新时间:2023-11-29 13:07:23 26 4
gpt4 key购买 nike

我正在将一个站点从 MySQL 转换为 Postgres,并且有一个非常奇怪的错误。在我切换 RDBMS 之前,这段代码按原样工作。在以下循环中:

 foreach ($records as $record) {
print "<li> <a href = 'article.php?doc={$record['docid']}'> {$record['title']} </a> by ";

// Get list of authors and priorities
$authors = queryDB($link, "SELECT userid FROM $authTable WHERE docid='{$record['docid']}' AND role='author' ORDER BY priority");

// Print small version of author list
printAuthors($authors, false);

// Print (prettily) the status
print ' (' . nameStatus($record['status']) . ") </li>\n";
}

第一个查询没问题。随后的调用不起作用(pg_query 在辅助函数中返回 false,因此它死了)。 queryDB 的代码如下:

function queryDB($link, $query) {

$result = pg_query($link, $query) or die("Could not query db! Statement $query failed: " . pg_last_error($link));

// Push each result into an array
while( $line = pg_fetch_assoc($result)) {
$retarray[] = $line;
}
pg_free_result($result);
return $retarray;
}

真正奇怪的部分:当我复制查询并使用 psql 运行它时(作为与 PHP 连接的同一用户),一切运行良好。或者,如果我将 queryDB 的内容复制到我的循环中以代替函数调用,我会得到正确的结果。那么这个包装器是如何导致错误的呢?

谢谢!

最佳答案

我发现由于我的 php.ini 配置错误,没有错误输出;重新打开错误后,我开始获取输出,我得到了诸如18 is not a valid PostgreSQL link resource之类的东西。更改我的连接代码以使用 pg_pconnect()(持久 版本)修复了这个问题。 (发现这个想法 here 。)

感谢所有看过并试图提供帮助的人!

关于php - pg_query() 似乎不在循环中执行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4340775/

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