【问题标题】:Fatal error: Call to undefined function pg_connect() in C:\wamp\www\php\function.php on line 18致命错误:在第 18 行调用 C:\wamp\www\php\function.php 中未定义的函数 pg_connect()
【发布时间】:2015-02-21 10:47:04
【问题描述】:

谁能一步一步帮助我,非常感谢。

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


【解决方案1】:

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

【讨论】:

  • 我要添加的 postgres 扩展名是什么?请回复
  • 欢迎来到 StackOverflow。我们非常愿意提供帮助,但您也必须自己付出一些努力。你试过什么?你哪里错了?你读过文档吗?您是否在网上搜索过您的问题?
【解决方案2】:

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

【讨论】:

  • pg_connect() 是一个php内置函数,所以这里不需要包含任何东西!
【解决方案3】:

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

local all all peer

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

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

local all all trust

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-28
    • 1970-01-01
    • 2015-04-04
    • 2012-07-19
    • 1970-01-01
    相关资源
    最近更新 更多