【发布时间】:2011-05-14 06:43:21
【问题描述】:
pg_connect() 以表格格式显示错误。不需要以表格格式显示错误消息,而是需要错误消息警报。
错误信息
警告:pg_connect() [function.pg-connect]:无法连接到 PostgreSQL 服务器:致命:第 41 行 /home/test/public_html/QueueManager/Modules/Database.php 中的用户“test”的密码验证失败
如果以表格格式显示错误。
执行 pg_connect() 后抛出异常。
但它不起作用。
代码
function connect()
{
$HOST = $GLOBALS[Database_Conn][Db_Host]; # Host name
$USER = $GLOBALS[Database_Conn][Db_User]; # database user name
$DBNAME = $GLOBALS[Database_Conn][Db_Name]; # name of the database
$PASSWORD = $GLOBALS[Database_Conn][Db_Pass]; # password the database user.
try
{
$conn = pg_connect("host=$HOST dbname=$DBNAME user=$USER ".
"password=$PASSWORD sslmode=disable");
if(!$conn)
{
throw new Exception("Database Connection Error");
}
return $conn;
}
catch (Exception $e)
{
print <<<_HTML_
<script> alert('Caught exception');
</script> _HTML_;
die();
}
}
请给我解决办法
【问题讨论】:
-
在捕获异常的同时抛出异常是不是有点连线...? (老实说,PHP 是否支持这种抛出异常)
-
是的,PHP 5 及更高版本支持异常。我猜他的代码就是这样,因为他正在测试异常的东西。问题是“警告:pg_connect()”消息是在之前 pg_connect 甚至返回之前生成的。
-
@DrColossos :: 可能他想隐藏默认异常,即显示连接尝试中使用的用户名,在这种情况下,消息是:
password authentication failed for user "test"
标签: php postgresql