gpt4 book ai didi

php - OS X Lion + PHP + PostgreSQL,pg_connect 什么都不返回

转载 作者:行者123 更新时间:2023-11-29 13:36:09 24 4
gpt4 key购买 nike

我必须将带有 PostgreSQL 数据库的大型 PHP 应用程序迁移到 Rails。这是 OS X Lion Macbook Pro,使用现有的 Apache + PHP 安装。

我通过 Homebrew 安装了 PostgreSQL。假设主机是“localhost”,用户名是“my_username”,默认数据库是“my_db”。密码为空。结果如下:

我可以通过命令行访问数据库

psql -h localhost -U my_username -p 5432 my_db

没问题。这也有效:

psql -U my_username my_db

也没有问题。而且我也可以使用 Rails 访问数据库,非常容易,使用这些设置:

adapter: postgresql
encoding: sql_ascii
template: template0
database: my_db
pool: 5
username: my_username
password:

一切正常。但是在 PHP 中,当我这样做时

pg_connect("host=localhost port=5432 dbname=my_db user=my_username") or die(pg_last_error());

我收到这条消息:

LANG_FATAL_ERROR: LANG_DB_COULD_NOT_CONNECT
Access denied for user 'my_username'@'localhost' (using password: YES)

如果我从行中删除“host=”,则留下:

pg_connect("port=5432 dbname=my_db user=my_username") or die(pg_last_error());

pg_connect("dbname=my_db user=my_username") or die(pg_last_error());

我一无所获。 pg_connect返回false,表示没有连接,但是没有报错! pg_last_error() 什么都不返回。

我还尝试在连接字符串中添加 password='',但没有结果。

我非常努力地在 Stack Overflow、Google 等网站上找到任何关于这个问题的引用资料,但没有成功。 Stack Overflow 上有几个标题相似的问题,但不是这个特定问题。我在网上找到的所有内容都是为自己编译 pgsql.so 并确保扩展名列在 php.ini 中。我做到了,结果为零。

显然这不是 PostgreSQL 本身的问题,而是 PHP 的问题。

请帮忙。谢谢。

最佳答案

此错误信息:

Access denied for user 'my_username'@'localhost' (using password: YES)

是众所周知的 MySQL 错误消息,它与 pg_connect() 调用无关。

另请注意,不能期望 pg_last_error() 输出任何对连接失败有用的信息,因为它假定存在现有连接。必须在 PHP 错误输出中搜索与连接失败相关的错误消息。

关于php - OS X Lion + PHP + PostgreSQL,pg_connect 什么都不返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10905387/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com