Php pg_query():4不是有效的PostgreSQL链接资源

Php pg_query():4不是有效的PostgreSQL链接资源,php,postgresql,Php,Postgresql,我刚刚遇到了一个非常有趣的错误,我不知道为什么会这样,我正在琢磨到底哪里出了问题 根据标题,错误为“无效postgres资源”,这对我来说很奇怪,因为: <?php require_once('database.php'); class Processor { public function list_data() { global $db; $sql = "select * from sales_data where id >= 0;";

我刚刚遇到了一个非常有趣的错误,我不知道为什么会这样,我正在琢磨到底哪里出了问题

根据标题,错误为“无效postgres资源”,这对我来说很奇怪,因为:

<?php
require_once('database.php');

class Processor {
    public function list_data() {
        global $db;

        $sql = "select * from sales_data where id >= 0;";
        $ret = pg_query($db, $sql);
        if(!$ret) {
            // echo pg_last_error($db);
        } else {
            // echo "Records listed sucessfully";
        }
        $data = pg_fetch_all($ret);
        pg_close($db);
        return $data;
    }
    public function delete_record($id, $first_name, $last_name) {   
        global $db;

        $sql = "update sales_data set id = -".$id." where id = ".$id;
        var_dump($sql);

        $ret = pg_query($db, $sql);
        if(!$ret){
            // echo pg_last_error($db);
        } else {
            // echo "Records created successfully\n";
        }
        pg_close($db);

        /* Redirect browser */
        // header("Location: http://$_SERVER[HTTP_HOST]/sales/viewcontacts.php");
    }
}
?>

我的list\u数据方法工作得非常好,而我的delete\u记录抛出了这个错误

sql的var\u dump显示:
string(42)“updatesales\u数据集id=-3,其中id=3”
这是完全有效的(至少就postgres而言)语法


正如建议的那样,
$db的var_dump
显示
类型(未知)的资源(4)

“sql的var_dump显示”-这是一个pg_*函数抱怨的另一个参数。@VolkerK这就是我想的,但是,为什么其他方法工作得很好?不知道。请在另一个参数($db)上使用var_dump(),哦,等等。。。。。您正在呼叫
pg_close($db)列表数据()
删除记录()
中的code>。在那之后,资源或多或少是毫无价值的。你没有在这两个调用之间重新建立postgresql连接,我说得对吗?@VolkerK-yup-bingo:)。关闭连接后,我在代码中没有任何地方可以在连接关闭时重新建立连接。问题已解决:)-回答问题,我接受“var_dump of sql shows”-这是一个pg_*函数抱怨的另一个参数。@VolkerK我就是这么想的,但是,为什么其他方法工作得很好?不知道。请在另一个参数($db)上使用var_dump(),哦,等等。。。。。您正在呼叫
pg_close($db)列表数据()
删除记录()
中的code>。在那之后,资源或多或少是毫无价值的。你没有在这两个调用之间重新建立postgresql连接,我说得对吗?@VolkerK-yup-bingo:)。关闭连接后,我在代码中没有任何地方可以在连接关闭时重新建立连接。问题解决:)-回答,我接受