You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下使用XAMPP调用pg_connect()出现未定义函数错误求助

解决PHP调用pg_connect()时报“Uncaught Error: Call to undefined function pg_connect()”的问题

看起来你已经尝试了一些基础操作,但核心问题是你只启用了PDO连接PostgreSQL的扩展,而pg_connect()属于原生PostgreSQL扩展,并未被加载。咱们一步步来解决:

  • 第一步:确认你修改的是正确的php.ini文件
    XAMPP里可能存在多个php.ini(比如Apache服务用的和CLI命令行用的),你改的可能不是当前Web服务加载的那一个。先新建一个info.php文件,内容如下:

    <?php phpinfo(); ?>
    

    在浏览器里运行这个文件,找到Loaded Configuration File这一项,它显示的路径就是你需要修改的php.ini的真实位置,别再改错文件了!

  • 第二步:启用原生PostgreSQL扩展
    打开正确的php.ini文件,找到extension=php_pgsql.dll这一行(不是你之前修改的php_pdo_pgsql.dll),把前面的分号;去掉。同时检查extension_dir的设置,确保它指向XAMPP的ext目录,比如:

    extension_dir = "ext"
    

    如果用绝对路径的话,要写成类似extension_dir = "C:\xampp\php\ext"这样的正确路径。

  • 第三步:检查版本兼容性
    确保你的PHP版本(从phpinfo页面查看)和PostgreSQL扩展的版本匹配,同时要注意32位/64位一致——比如XAMPP是64位的,PostgreSQL也要是64位的,不然扩展会加载失败。

  • 第四步:重启Apache服务
    改完php.ini后,一定要在XAMPP控制面板里重启Apache服务,只重启XAMPP程序没用,必须重启对应的Web服务,让新的配置生效。

  • 第五步:验证扩展是否加载成功
    再次运行info.php,在页面里搜索pgsql,如果能看到完整的pgsql模块信息,说明扩展已经加载成功了。这时候再运行你的connect.php,应该就能正常连接了。

另外提个小细节:你的代码里用的端口是5434,默认PostgreSQL监听的是5432,记得确认你的PostgreSQL配置文件postgresql.conf里的port参数确实设成了5434,并且PostgreSQL服务也重启过哦。

内容的提问来源于stack exchange,提问作者dimoles

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:04:52