当前位置: 首页 > 面试题库 >

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

穆智刚
2023-03-14
问题内容

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

82行只是:

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

(所有先前定义的变量)

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

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

我还运行了phpinfo()并显示php版本确实支持PostgreSQL模块。我花了整整一天的时间寻找解决方案,但未成功。这是我开发网站的第一个项目,而且我很机智。任何帮助将不胜感激。

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中与UNIX等效,即“ php_pqsql.dll”)。我也将“
pqsql.so”文件复制粘贴到了Apache / bin目录中,但是没有任何改变。

我主要不是在命令行中运行php。我只是很想知道phpinfo()能给我什么与我在上面的回复中提到的pgsql相关的信息。

我仍在使用您提到的工具,一旦得到任何结果,我会尽快答复。

谢谢,H


问题答案:

您需要安装php-pgsql软件包或平台所需要的任何软件包。我不认为您是这样说的。

在Ubuntu和Debian上:

sudo apt-get install php5-pgsql


 类似资料:
  • 问题内容: 当我尝试将旧的sql切换到sqli时,有人可以告诉我为什么这不起作用: 至: 它一直给我一个错误:“致命错误:调用未定义函数mysqli_result()” 问题答案: 不要使用这种代码。这是非常低效的。使用来代替: 一个SINGLE数据库操作,而不是您尝试执行的3个以上操作。

  • 问题内容: 我的代码是这样的: 当我运行通过Web套接字创建连接的php文件时,出现致命错误:调用if(($ this-> master = socket_create(AF_INET,SOCK_STREAM,SOL_TCP))<0)行中的未定义函数socket_create() 因此,我无法连接Web套接字,也无法从套接字获取响应消息,因为在运行客户端页面时,浏览器中显示的是套接字状态:3(关闭

  • 问题内容: 我正在尝试建立一个捐赠中心,使用的是Totorialzine的源代码。 到目前为止,到目前为止一切都对我来说还算不错,但是我一直在苦苦挣扎并试图研究一整天的唯一问题,无法确切知道代码的实际错误所在 这是我的访客捐赠时在页面上提交评论时得到的。 这是php文件中的代码。 我的phpMyAdmin数据库已完成上传 这是我按照安装说明进行操作的地方 http://tutorialzine.c

  • 问题内容: Apache正在记录日志。经过一番谷歌搜索,似乎这个问题是由于没有最新版本的php导致的。奇怪的是,运行输出 清楚表明我的版本大于。 关于什么可能导致这种情况的任何想法,或者要采取哪些措施找出答案? 编辑:脚本回显phpversion的结果是 编辑:的结果也是 此外,在中,它列出了模块JSON和模块作者(Omar Kilani,Scott MacVicar)。 问题答案: 简短答案:

  • 问题内容: 我不断收到错误PHP致命错误:调用未定义函数mysqli_stmt_get_result()。我正在使用PHP版本5.6,并在主机提供商c面板中启用了扩展mysqlind,但我不知道为什么仍然出现此错误。我进行了研究,发现每次需要启用mysqli nd才能使用mysqli_stmt_get_result。任何人都可以协助/教导我在做什么错。谢谢。 SIGNUP.PHP: 问题答案: 您

  • 两天来我一直在努力解决这个问题,但不幸的是没有结果。让我告诉你我关于这个问题的故事。我在一个网站上创建了一个应用程序,该应用程序处理评论。但是,我试图把它放在另一个站点上,我复制了php文件和旧站点的sql文件,并将它们移动到了新站点(它们位于不同的FTP服务器上)。当我试图从应用程序转到页面时,我收到以下致命错误: 致命错误:调用未定义的函数mysqli_connect() 我写的连接到数据库的