我想使用php连接到postgresql数据库但在提交时显示空白屏幕并且不执行查询
提前致谢
更新:这是我的代码
function execute_query($dbName,$query){
$host = "localhost";
$user = "postgres";
$pass = "";
$db = "test";
echo "before create connection";
$con = pg_connect ("host=$host dbname=$db user=$user password=$pass");
echo "After connection is created";
if (!$con) {
echo "not connected";
// die('Could not connect: ' . mysql_error());
}
$result = pg_query($con, $query);
pg_close($con);
return $result;
}
输出: 显示消息“连接前”但不显示消息“创建连接后”或“未连接”。
答案 0 :(得分:7)
问题可能是PHP错误,它被记录到某个地方的日志文件中。找到日志文件,或使用脚本顶部的以下内容启用显示页面上的日志错误:
ini_set('display_errors', '1');
error_reporting(E_ALL | E_STRICT);
这是一个短期解决方案,无法在部署中使用(您希望将display_errors
设置为0
)。对于长期解决方案,您确实希望找到Apache或PHP错误日志并tail
。
要尝试查找错误日志,请运行以下脚本:
<?php phpinfo(); ?>
在配置&gt; PHP核心部分,查找error_log
。如果未设置,则可以在php.ini
文件中进行设置。即使您将display_errors
设置为0
,所有错误也会记录到该文件中。
答案 1 :(得分:2)
将php文件添加到您的服务器并将其放在该文件中:
<?php
echo phpinfo();
?>
当您从浏览器打开该文件时,请检查是否为php设置了postgres支持。 你应该在页面上这样的东西:
pgsql
PostgreSQL Support enabled
PostgreSQL(libpq) Version 8.2.3
Multibyte character support enabled
SSL support disabled
Active Persistent Links 0
Active Links 0
答案 2 :(得分:0)
尝试检查Web服务器的错误日志(例如,/ var / log / apache2 / error.log是Apache2日志的常见位置)并查看PHP是否报告了错误。
答案 3 :(得分:0)
如果这是本地开发服务器,您可能需要在ini文件中设置php错误报告级别。
答案 4 :(得分:0)
看来,你的php没有postgresql支持,参见http://us.php.net/manual/en/ref.pgsql.php:
注意:并非所有功能都受支持 所有构建。这取决于你的 libpq(PostgreSQL C客户端 库)版本以及libpq如何 编译。如果PHP PostgreSQL扩展 缺少,那是因为你的 libpq版本不支持它们。