1
我正在將一個站點從MySQL轉換爲Postgres,並且有一個非常奇怪的錯誤。此代碼在我切換RDBMS之前按原樣工作。在以下循環中:pg_query()似乎不在循環中執行查詢
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";
}
FIRST查詢很好。後續調用不起作用(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的肉複製到我的循環中而不是函數調用中,我會得到正確的結果。那麼這個包裝是如何引發錯誤的呢?
謝謝!
運行`pg_last_error()`讓我們知道輸出。 – Woot4Moo 2010-12-02 22:50:36