pg_connect崩溃我的PHP脚本
我想运行一个PHP脚本,它具有pg_connect($ connection_string),它只是崩溃我的PHP脚本。我在我的电脑上运行它的xampp,这里有一些事实:pg_connect崩溃我的PHP脚本
- 如果我把退出(“测试”);紧接着在pg_connect语句之上,它成功地显示了单词“test”并终止了脚本,所以我知道我的xampp安装正在工作。
- 使用phpinfo()我可以看到postgresql扩展确实加载了。
- 我可以从pgadmin连接到数据库服务器,所以它不是防火墙问题或类似的东西。
-
如果我删除此退出语句,pg_connect语句只是挂起。没有显示或记录警告,它甚至不会超过函数调用。我甚至有:
$ db_crm = pg_connect($ connection_str); (!$ db_crm)死(“连接失败”);如果(!$ db_crm)死(“连接失败”);
并且“连接失败”从未被显示。超时后,我的浏览器只显示“此页面无法显示”。
世界上可能造成这种情况的是什么?
这家伙: 我没有理由,但加入sslmode =禁用我的连接字符串使工作结束。它有什么原因需要崩溃?我在一台Windows机器上,phpinfo()表示OpenSSL已启用。
令人怀疑电话是否会崩溃PHP。更可能的是,出于某种原因,由于某种原因,调用挂起,PHP的最大执行时间已被超出。 You can try extending the time limit在进行pg_connect()调用之前查看它是否最终返回某个东西。
- 检查Apache的错误日志
- 检查PHP错误日志
- 确保你在你的Postgres的配置文件有logging enabled。
-
在你的配置,设置
log_min_error_statement (DEBUG5)
抓住一切可能的。
- 检查Postgres的错误日志
这听起来很愚蠢,但是您的服务器是否在SSL下运行?我遇到了问题,服务器将尝试对ssl进行身份验证并无限期挂起,尝试连接到不存在的端口。
sslmode =禁用为我做了诡计。在postgres-config(ssl = false)中禁用ssl也起作用。
对我来说,Apache日志显示PHP没有找到pg_connect()函数,即使安装了php-postgresql。重新启动Apache修复此问题,即
sudo service httpd restart
,为什么这样工作? – 2015-01-28 06:21:52
我假设它是。原始代码没有在连接标志中设置该属性。但是,原来的代码在Linux上运行,而当发生此问题时,我在windows下。 – ryeguy 2009-07-14 20:13:31