php与postgresql数据库

时间:2009-08-24 13:15:45

标签: php postgresql

我想使用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; 
}

输出: 显示消息“连接前”但不显示消息“创建连接后”或“未连接”。

5 个答案:

答案 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版本不支持它们。