Verbindung zur MySQL-Datenbank überprüfen

B

Badener

Hallo,

ich versuche momentan per PHP, Daten aus einer Datenbank auszulesen und anzuzeigen zu lassen. Sollte ja eigentlich nicht weiter schwer sein.

Für die Verbindung benutze ich PEAR (das DB-Package).

Auf der Seite, die die MySQL-Inhalte anzeigen soll, steht ganz oben:
PHP:
$db = new DB_Util('mysql://root:@localhost/blubber');

$lesezeichen = Bookmark::alle();

In der Util.php ist die Datenbankverbindung ebenfalls eingetragen mit
PHP:
function DB_Util($dsn = "mysql://root:@localhost/blubber")

Jetzt mein Problem: Ich bekomme keine Verbindung! Die Datenbank "blubber" existiert - ich kann sie auch per phpmyadmin und CocoaMySQL verwalten. Inhalte sind auch schon hinterlegt.

Kommentiere ich die Zeile
PHP:
$db = new DB_Util('mysql://root:@localhost/blubber');
aus, kommt auch brav die Fehlermeldung, daß keine Verbindung zur DB besteht.
Aber sobald ich diese Zeile wieder reinnehmen, bekomme ich als Ausgabe nur eine leere Seite.

Kommentiere ich beide Zeilen aus, zeigt er mir die Website (natürlich ohne DB-Inhalte) an - daran kann es also auch nicht liegen....
Die Pfade zu PEAR stimmen auch alle (hab die ins Projekt reinkopiert, da ich PEAR nicht vernünftig installiert bekomme - bin da wohl zu blöd für).

Installiert ist MySQL 5.0.22

Und jetzt gehen mir so langsam die Ideen aus.
 
Was macht denn die Funktion DB_Util?

Baut die mit DB::connect() eine Verbindung auf? Und wenn ja, was ergibt eine Überprüfung auf Fehler nach diesem Verbindungsaufbau?
PHP:
$this->dbh = DB::connect("mysql://root:@localhost/blubber",true);
if (DB::isError($this->dbh)) {
  die("DB::connect: ".$this->dbh->getMessage());
}

root ohne Passwort ist übrigens keine wirklich gute Idee.

Matt
 
PHP:
function DB_Util($dsn = "mysql://root:@localhost/blubber") {
$c = DB::connect($dsn);
if (DB::isError($c))
die ("Fehler beim Verbindungsaufbau mit [$dsn]:".$c->getMessage());
self::$db_handle = $c;
}

static function connection() {
if (empty(self::$db_handle))
die("es besteht keine offene Datenbankverbindung. Zuerst mit
      		        DB_Util::new() Verbindung herstellen.".__LINE__);
return self::$db_handle;
}

So sieht die Funktion aus. Kommt aus dem PEAR-Packe und die Datei heißt Util.php.

Eigentlich müßte er mir eine Fehlermeldung bringen - tut er aber nicht..

Gebe ich nun Deinen Quelltest ein - kommt leider auch nur eine leere Seite...

Den root ohne PW habe ich, weil er eh nur lokal verwendet wird....
 
msslovi0 schrieb:
Was macht denn die Funktion DB_Util?

Baut die mit DB::connect() eine Verbindung auf? Und wenn ja, was ergibt eine Überprüfung auf Fehler nach diesem Verbindungsaufbau?
PHP:
$this->dbh = DB::connect("mysql://root:@localhost/blubber",true);
if (DB::isError($this->dbh)) {
  die("DB::connect: ".$this->dbh->getMessage());
}

root ohne Passwort ist übrigens keine wirklich gute Idee.

Matt

So - habe es nochmal probiert und habe Deinen Quellcode direkt in die Funktion geschrieben. Als Meldung kommt dann:

DB::connect: DB Error: not found

Sonst passiert aber nichts :(
 
warum versuchst du nicht einfach mal php-mysql bzw -mysqli?

oder musst du evtl. in pear mysql per socket ansprechen?
meistens ist ja bei mysql das networking deaktiviert...
 
@Hilarious: Ja - das ist die Lösung des Problems. Jetzt funktioniert es....

Wow - da muß man erstmal drauf kommen :kopfkratz:

Aber mal wieder ein herzliches "Danke" an alle - eure Hilfe und Ihr wart mal wieder SUPER!
 
Zurück
Oben Unten