致命错误:调用未定义的函数 pg_connect()

2022-08-30 12:00:31

我正在尝试连接到安装了PostgreSQL的数据库(远程服务器)。我的PHP代码正在尝试使用pg_connect()连接到数据库,但我收到错误说:- “致命错误:调用未定义的函数pg_connect()在/var/www/website/functions.php第82行”。

第 82 行简单来说就是:

$db = pg_connect($conn_string);
where $conn_string = "host=".$hostname." port=5432 dbname=".$dbname." user=".$db_user." password=".$db_password.""

(前面定义的所有变量)

我检查了许多论坛,建议的唯一解决方案是找到php.ini文件,其中包含一行:- 扩展名= pgsql.so(对于UNIX)和扩展名=php_pgsql.dll(对于Windows)。

这个声明应该被注释,解决方案是取消注释它。我已经尝试过,但仍然不能改变情况。远程服务器安装的版本高于 PostgreSQL v9.0.4。然后,我将PostgreSQL v8.4.8安装到我的笔记本电脑上,并使用MAMP在本地运行网站。起初,Apache由于某种奇怪的原因而崩溃,我修复了这个问题,但我再次遇到了与以前相同的错误,即致命错误:调用未定义的函数pg_connect()....

我也运行了,它表明php版本确实支持PostgreSQL模块。我花了一整天的时间寻找解决方案,但没有成功。这是我的第一个开发项目,我失去了智慧。任何帮助将不胜感激。phpinfo()

phpinfo()在终端上给了我一个巨大的列表,但与PostgreSQL相关的列表如下:

pdo_pgsql

PDO Driver for PostgreSQL => enabled
PostgreSQL(libpq) Version => 9.0.4
Module version => 1.0.2
Revision =>  $Id: pdo_pgsql.c 306939 2011-01-01 02:19:59Z felipe $ 

pgsql

PostgreSQL Support => enabled
PostgreSQL(libpq) Version => 9.0.4
Multibyte character support => enabled
SSL support => enabled
Active Persistent Links => 0
Active Links => 0

Directive => Local Value => Master Value
pgsql.allow_persistent => On => On
pgsql.auto_reset_persistent => Off => Off
pgsql.ignore_notice => Off => Off
pgsql.log_notice => Off => Off
pgsql.max_links => Unlimited => Unlimited
pgsql.max_persistent => Unlimited => Unlimited

在我所做的每次编辑后,我都重新启动了MAMP,因为到目前为止,我读过的每篇文章都提到了它。我相信这会重置Apache和php。

“pqsql.so”(在 Windows 中相当于“php_pqsql.dll”的 UNIX)存在于“扩展”目录中。我还将“pqsql.so”文件复制粘贴到Apache / bin目录上,但它没有给我任何更改。

我主要不是在命令行中运行php。我只是好奇地想看看phpinfo()会给我什么与pgsql相关,我在上面的回复中已经提到过。

我仍在研究您提到的工具,一旦获得任何结果,我将立即回复。

谢谢,H


答案 1

您需要安装php-pgsql软件包或为您的平台调用的任何内容。顺便说一句,我不认为你说的。

在 Ubuntu 和 Debian 上:

sudo apt-get install php5-pgsql

答案 2

Ubuntu 的简易安装:

只需运行:

sudo apt-get install php5-pgsql

然后

sudo service apache2 restart //restart apache

在 php 中取消注释以下内容.ini通过删除;

;extension=php_pgsql.dll

然后重新启动 apache


推荐