PEAR-Forum.de Übersicht Thema anzeigen - Warning/Fehler bei Datenbankverbindung

Warning/Fehler bei Datenbankverbindung


 

PEAR-Forum.de Übersicht » Database
Neues Thema eröffnen Neue Antwort erstellen Diesen Beitrag ausdrucken
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Sensei
User


Anmeldungsdatum: 10.03.2009
Beiträge: 17

Beitrag10.03.2009 18:13    Warning/Fehler bei Datenbankverbindung Antworten mit Zitat

Hi,
ich möchte ein Projekt erstellen wobei ich sehr gerne auf die Datenbankverbindung mittels PEAR - MDB2 zurückgreiffen möchte. Nachdem ich die pear dateien auf dem Server in den Ordner /php installiert habe und in meiner datei registrieren.php den aufruf include 'PEAR/MDB2.php'; mache, kommt bei mir immer eine Fehler-Meldung (siehe [url]http://umzugsboerse.com/wese_logistik/registrieren.php [/url]). Die Datei registrieren.php liegt im Verzeichnis /wese_logistik auf dem gleichen Server. Ich nutze PHP v.5 mit einer MySQL DB, falls das für euch relevant ist.

Vielen, vielen Dank für eure Hilfe!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
mark
Power User


Anmeldungsdatum: 31.05.2004
Beiträge: 970

Beitrag10.03.2009 21:38     Antworten mit Zitat

Du musst nur MDB2.php einbinden, ohne eine Pfadangabe davor (so wie es auch in den Beispielen steht). Voraussetzung ist natürlich, dass du PEAR und MDB2 sowieso das passende MDB2_Driver_X-Paket richtig installiert hast. Laut der Fehlermeldung müssten die Pakete in /usr/local/lib/php/ installiert sein, damit es funktioniert. Alternativ kannst du den include_path auf das richtige Verzeichnis zeigen lassen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen PEAR-User
Sensei
User


Anmeldungsdatum: 10.03.2009
Beiträge: 17

Beitrag10.03.2009 21:58     Antworten mit Zitat

OK, das hatte ich auch schon versucht, nur MDB2.php einzubinden, hab ich jetzt gemacht, dann kommt foglende Fehlermeldung: Verbindungsfehler!MDB2 Error: not found (siehe auch zuvor gepostete URL).
In diesem webbasierten PEAR Package Manager wird mir unter Configuration folgender Pfad angezeigt: /usr/www/users/umzugsb/php/ - meinst du das bzw. ist das korrekt? Alternativ könntest du mir vielleicht sagen, wie ich diesen include_path Befehl setzen muss und worauf? Wäre echt super von dir!

Vielen, vielen Dank!!!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
mark
Power User


Anmeldungsdatum: 31.05.2004
Beiträge: 970

Beitrag10.03.2009 22:46     Antworten mit Zitat

Füg mal folgende Zeile am Anfang deines Skripts ein:
Code:

set_include_path('.:/usr/www/users/umzugsb/php/');
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen PEAR-User
Sensei
User


Anmeldungsdatum: 10.03.2009
Beiträge: 17

Beitrag11.03.2009 10:51     Antworten mit Zitat

OK, ich habe die Zeile hinzugefügt, aber es hat sich leider nichts getan, die gleiche Fehlermeldung existiert weiterhin. Hier mal der Beginn des PHP-Codes meines Skripts, falls er dir weiterhilft:
Code:
<?php
   set_include_path('.:/usr/www/users/umzugsb/php/');
   
   include 'MDB2.php';
   
   $dsn = 'mysql://[i]username[/i]:[i]passwort[/i]@localhost/[i]datenbank[/i]';
   
   $db = MDB2::connect($dsn);
   
   if (PEAR::isError($db))
      die ("Verbindungsfehler!".$db->getMessage());
         ...

Die Verbindung unter $dsn ist doch korrekt, oder?

Probehalber habe ich auch mal versucht, die Verbindung ohne MDB2 (was ich eigentlich nicht möchte) herzustellen, mit dem mysql_connect Statement. Dann kommt folgende Fehlermeldung:

Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /usr/www/users/umzugsb/wese_logistik/registrieren.php on line 13

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /usr/www/users/umzugsb/wese_logistik/registrieren.php on line 14

Fatal error: Call to a member function prepare() on a non-object in /usr/www/users/umzugsb/wese_logistik/registrieren.php on line 18

Vielleicht hängt das ja irgendwie zusammen bzw. sagt dir was?!

Ich weiß echt nicht mehr, was ich noch machen soll - das kann doch nicht so übelst kompliziert sein.

Vielen Dank für deine Hilfe!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Berdir
Power User


Anmeldungsdatum: 22.09.2005
Beiträge: 1347

Beitrag11.03.2009 11:49     Antworten mit Zitat

a) Bei MDB2 beim Entwickeln auch immer getDebugMessage() ausgeben

b) Ich bin mir zu 90% sicher, das du vergessen hast, das MDB2_Driver_mysql paket zu installieren.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden PEAR-User
Sensei
User


Anmeldungsdatum: 10.03.2009
Beiträge: 17

Beitrag11.03.2009 13:16     Antworten mit Zitat

ok, habe deine zwei möglichkeiten versucht:

a) wenn ich den befehl in das skript einfüge bekomme ich die fehlermeldung:
Fatal error: Call to undefined method MDB2_Error::getDebugMessage() in /usr/www/users/umzugsb/wese_logistik/registrieren.php on line 18

b) Das Package ist bereits installiert. Hier ein Auszug aus dem PEAR Webbased Package Manager:
Installed packages, channel pear.php.net:

pear.php.net Archive_Tar 1.3.2 (stable) Tar file management class
pear.php.net Console_Getopt 1.2.3 (stable) Command-line option parser
pear.php.net HTML_Template_IT 1.2.1 (stable) Integrated Templates
pear.php.net MDB2 2.4.1 (stable) uninstall database abstraction layer
pear.php.net MDB2_Driver_mysql 1.4.1 (stable) uninstall mysql MDB2 driver
pear.php.net PEAR 1.7.2 (stable) PEAR Base System
pear.php.net PEAR_Frontend_Web 0.7.3 (beta) Webbased PEAR Package Manager
pear.php.net Structures_Graph 1.0.2 (stable) Graph datastructure manipulation library

Muss man evtl. in dem Package Manager irgendwo noch eine besondere Pfadangabe ändern oder ähnliches?

Danke!!!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
mark
Power User


Anmeldungsdatum: 31.05.2004
Beiträge: 970

Beitrag11.03.2009 13:22     Antworten mit Zitat

Die Methode heißt getDebugInfo() statt getDebugMessage().
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen PEAR-User
Sensei
User


Anmeldungsdatum: 10.03.2009
Beiträge: 17

Beitrag11.03.2009 13:33     Antworten mit Zitat

OK, vielen Dank!

Nun habe ich folgende Meldung:
Verbindungsfehler!MDB2 Error: not found unable to find package 'MDB2_Driver_mysql' file 'MDB2/Driver/mysql.php'

Die Datei mysql.php liegt jedoch in dem angegebenen Verzeichnis und das Package ist auch installiert, wie ich ja zuvor gepostet habe. Muss ich hier noch eine Pfadangabe ändern?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
mark
Power User


Anmeldungsdatum: 31.05.2004
Beiträge: 970

Beitrag11.03.2009 13:44     Antworten mit Zitat

Der include_path muss stimmen, sonst findet MDB2 "seine" Dateien nicht. Wie man ihn ändert, hatte ich ja schon geschrieben. Ob das der richtige Pfad ist, kannst aber nur du beurteilen. (PEAR.php und MDB2.php müssen in diesem Verzeichnis liegen, ebenso das Verzeichnis MDB2.)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen PEAR-User
Sensei
User


Anmeldungsdatum: 10.03.2009
Beiträge: 17

Beitrag11.03.2009 14:36     Antworten mit Zitat

so, jetzt funktioniert es.
Das Problem war noch folgendes:

- in dem include_path hat das letzte Verzeichnis gefehlt, so ist es korrekt: set_include_path('.:/usr/www/users/umzugsb/php/PEAR');

- im dsn habe ich bei dem host noch :3306 hinzugefügt (also @localhost:3306)

und siehe da, es funktioniert.

Vielen, vielen Dank für eure Hilfen!!!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Diese Seite übersetzen
PEAR-Forum.de Übersicht » Database
Neues Thema eröffnen Neue Antwort erstellen Diesen Beitrag ausdrucken
   Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

Zu Deinen Favoriten hinzufügen

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen