我查看了多个SO线程,但似乎没有任何问题。我编译并安装了pro_pgsql扩展,如下所述:http://blog.rupey.org/post/63221360055/adding-postgres-support-to-php-on-os-x-mavericks并验证它是通过运行php -m
加载的,已经重新启动,php_info显示以下内容:
但是当我运行这个脚本时:
echo "hi!";
$ebdb_conn = pg_connect('dbname=mydb user=frank password=frank123') or die(pg_last_error());
我在日志中收到以下错误:
[Mon Jun 09 12:39:05 2014] [error] [client ::1] PHP Fatal error: Call to undefined function pg_connect() in /Users/frank/Code/ebus/test.php on line 4
这是OSX Mavericks,Apache和PHP 5.2.24。有什么想法吗?
答案 0 :(得分:0)
最终通过卸载与Enterprise DB postgres软件包有关的所有内容并使用一组一致的软件包重新安装它来解决此问题。不幸的是,我仍然在机器上有一个不匹配的psql客户端,但除此之外它工作正常。对于其他人看到这一点,我建议:
请勿在OSX Mavericks的postgres网站上使用企业数据库安装程序使用以下其中一项
1)postgres app(http://postgresapp.com)很好,因为它有postGIS和其他内置的扩展
2)映射端口包(https://trac.macports.org/browser/trunk/dports/databases/postgresql82/Portfile)
3)brew安装程序(http://www.moncefbelyamani.com/how-to-install-postgresql-on-a-mac-with-homebrew-and-lunchy/)
答案 1 :(得分:-1)
pg_connect不是PDO库的一部分。它包含在PHP的直接postgresql库中。在MacPorts中,这是php5-postgresql,其中macports来自http://lil.fr.packages.macports.org/php5-postgresql。