Как показать / отладить ошибки PEAR :: DB на веб-странице? - PullRequest
1 голос
/ 31 мая 2010

Я подключаюсь к базе данных 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 голосов
/ 31 мая 2010

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 никогда не верен. Я думал, что если пароль неправильный, это будет ошибкой.

0 голосов
/ 31 мая 2010

Сбой, потому что это не объект PEAR Error. (Это означает, что соединение с БД прошло успешно)

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

Но die вверху (в вашем connection.inc) немедленно остановит выполнение скрипта, и любой код под ним никогда не будет запущен.

...