如何在网页中显示/调试PEAR :: DB错误?

时间:2010-05-31 13:29:28

标签: php pear

我正在连接到我的网页上的MySQL数据库,并将这个复制粘贴的代码用于错误:

if(DB::isError($db)) die($db->getMessage());

我在名为connection.inc的外部文件中有连接代码,我在DOCTYPE和html标记之前包含在页面的开头。

出于调试目的,如何在我的网页上打印数据库错误?

我以为我可以这样做:

echo 'Could not connect to database. The error was:' . $db->getMessage();

但是返回:致命错误:调用未定义的方法DB_mysql :: getMessage()

connection.inc看起来像这样:

require_once("DB.php");
$dsn="mysql://mannerv_bonus:blahblah@localhost/mannerv_bonus";
$db = DB::connect($dsn);
if(DB::isError($db)) die($db->getMessage());
else $db->query("SET NAMES 'latin1'");

我试过了:

if(DB::isError($db)) {
echo 'There was an error';
echo $db->getMessage();
}

我可以更改密码并执行任何操作,但似乎isError永远不会成立。我认为如果密码错误,这将是一个错误。

2 个答案:

答案 0 :(得分:0)

失败,因为它不是PEAR错误对象。 (这意味着数据库连接成功)

if (PEAR::isError($db)) {
    echo $db->getMessage();
}

但是顶部的die(在connection.inc中)将立即停止脚本执行,并且其下面的任何代码都将永远不会运行。

答案 1 :(得分:0)

connection.inc看起来像这样:

require_once("DB.php");
$dsn="mysql://mannerv_bonus:blahblah@localhost/mannerv_bonus";
$db = DB::connect($dsn);
if(DB::isError($db)) die($db->getMessage());
else $db->query("SET NAMES 'latin1'");

我试过了:

if(DB::isError($db)) {
echo 'There was an error';
echo $db->getMessage();
}

我可以更改密码并执行任何操作,但似乎isError永远不会成立。我认为如果密码错误,这将是一个错误。