Mailinglisten-Archive |
Hi,
ich habe gerade Pear::DB installiert und hab ein bißchen getestet wie
Pear::DB mit Fehlern umgeht.
Code:
>>>
require_once 'DB.php';
$user = 'xxx';
$pass = 'xxxx';
$host = '192.168.0.99';
$db_name = 'mysql';
$dsn = "mysql://$user:$pass_(at)_$host/$db_name";
$db = DB::connect($dsn);
if (DB::isError($db)) {
die ($db->getMessage());}
$sql = "select * from user";
$result = $db->query($sql);
if (DB::isError($result)) {
die ($result->getMessage());}
while ($row = $result->fetchRow()) {
echo $row[0];}
<<<
Setzte ich nun in die Variable $sql absichtlich falsche Sql-Syntax ein, oder
versuche ich auf eine nicht vorhandene Tabelle zuzugreifen, wird mir erstmal
kein Fehler ausgegeben, späteren Fehlermeldung:
Fatal error: Call to a member function on a non-object in ...
Ich dachte $db->getMessage() und $result->getMessage() sollen mir den Text
der Fehlermeldung ausgeben. Wie sollen die das denn, wenn die jeweilige
Instanz der Klasse zu diesem Zeitpunkt nicht mehr existiert?!?
Das Beispielscript habe ich von der Pear-Seite.
mfg
Martin Abraham
php::bar PHP Wiki - Listenarchive