Php pg_query():4不是有效的PostgreSQL链接资源
我刚刚遇到了一个非常有趣的错误,我不知道为什么会这样,我正在琢磨到底哪里出了问题 根据标题,错误为“无效postgres资源”,这对我来说很奇怪,因为: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;";
<?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:)。关闭连接后,我在代码中没有任何地方可以在连接关闭时重新建立连接。问题解决:)-回答,我接受