致命错误:在第18行调用C:wampwwwphpfunction.php中未定义的函数pg_connec


Fatal error: Call to undefined function pg_connect() in C:wampwwwphpfunction.php on line 18

有人能一步一步帮助我吗?非常感谢。

function wampserver (){
    $host = "localhost";
    $port = "5432";
    $name = "IMSDB";
    $user = "postgres";
    $pass = "magahin";
    $pg = pg_connect("host=$host port=$port dbname=$name user=$user password=$pass")
    or die("Can't connect to database.");
}

您的PHP设置中没有安装Postgres扩展。有关如何安装,请参阅您的平台文档

您应该包含类为pg_connect的文件,以便访问该函数并连接您的Db

考虑pg_hba.conf中的第一条规则:

local all all peer

这意味着,对于所有本地连接,Unix用户应该与db用户相同。显然,php代码的情况并非如此,因此用户的对等身份验证失败。。。。

第二条规则会让你的脚本连接,但它被忽略了,因为第一条规则优先:

local all all trust

此规则意味着允许所有本地连接,无需密码,也无需检查任何身份。

如果可以的话,只需删除第一条规则,然后重新加载postgresql服务,使更改生效。

其他规则应该与问题无关,因为它们与TCP连接有关,根据错误消息,这不是脚本使用的方法,而是试图通过默认的Unix域套接字进行连接。