kann Pear DB nicht nutzen...

Alles, was PHP betrifft, kann hier besprochen werden.

kann Pear DB nicht nutzen...

Postby bweichel » 05. August 2007 18:50

Hallo,

ich habe mir XAMPP installiert und kann zwar andere Pear Pakete verwenden jedoch nicht das Paket DB. Es kommt immer die Meldung:

Fatal error: Class 'DB' not found in C:\xampp\htdocs\xxx\db.php on line 6

Was läuft da schief?
bweichel
 
Posts: 16
Joined: 17. July 2007 20:46

Postby Wiedmann » 05. August 2007 19:10

Was läuft da schief?

Er wird die Datei mit der Classe nicht includieren, da du ja für deine Datei den selben Dateinamen gewählt hast.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby bweichel » 06. August 2007 17:35

ich weiß nicht ob das der grund sein soll.. habe nun die datei in db_connect.inc.php umbenannt... jetzt kommt:

[PHP]
DB Error: insufficient permissions
[/php]
bweichel
 
Posts: 16
Joined: 17. July 2007 20:46

Postby Wiedmann » 06. August 2007 18:28

DB Error: insufficient permissions

Nun, deine Anmeldedaten die du im Script benutzt werden nicht passen.

BTW:
Warum benutzt du eigentlich nicht MDB2, sondern das veraltete DB?
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby bweichel » 06. August 2007 18:38

mmh, also wenn ich zum Beispiel:

[php]
require_once('Mail/mime.php');
require_once('Mail.php');
[/php]

für meine Newsletter aufrufe, dann funktioniert das eigentlich ohne Probleme. Wo liegt denn dann bei:

[php]
require_once('DB.php');
[/php]

das Problem?

DB verwende ich hauptsächlich deshalb weil es im PHP PEAR Buch umschrieben ist. Ich habe noch keine tolle deutsche Anleitung zu MDB2 gefunden. Kennst du eine?
bweichel
 
Posts: 16
Joined: 17. July 2007 20:46

Postby Wiedmann » 06. August 2007 18:50

DB Error: insufficient permissions

Diese Meldung taucht doch aber nicht genau bei dieser Zeile auf?:
Code: Select all
require_once('DB.php');



Ich habe noch keine tolle deutsche Anleitung zu MDB2 gefunden. Kennst du eine?

Die orginal Anleitung ist gut und erstmal ausreichend (MDB2 ist aber ähnlich wie DB). Hab mich aber noch nie um speziell deutsche gekümmert. Die taugen in der Regel als die englische. Und bei fremden Anleitungen muss man eh aufpassen...
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby bweichel » 06. August 2007 19:00

ich habe das ganze nun mal auf das nötigste reduziert. jetzt kommt nicht mehr die erste meldung, aber dafür eine andere Class DB not found... hä?...

hier mal mein script...
Code: Select all
<?php
require_once('DB.php');

$dsn = "mysql://test:test@localhost/newsletter";

$db = DB::connect($dsn);

if(true == DB::isError($db)) {
   die($db->getMessage());
}

$db->disconnect();
?>


Was soll da falsch sein, ich peil`s net...
bweichel
 
Posts: 16
Joined: 17. July 2007 20:46

Postby Wiedmann » 06. August 2007 20:59

aber dafür eine andere Class DB not found...

Die Meldung sieht wie genau aus?

BTW:
Code: Select all
$db = DB::connect($dsn);

Besser:
Code: Select all
$db =& DB::connect($dsn);


Code: Select all
if(true == DB::isError($db)) {

Besser:
Code: Select all
if (PEAR::isError($db)) {
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby bweichel » 07. August 2007 08:55

nee, leider immer noch nicht...

Code: Select all
<?php
require_once('DB.php');

$dsn = "mysql://test:test@localhost/newsletter";

$db =& DB::connect($dsn);

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

$db->disconnect();
?>


meinst du wirklich das es daran liegt? ich meine immerhin kommen diese beispiele aus dem buch php pear und sollte doch dann auch funktionieren, oder?

was besagt die fehlermeldung denn überhaupt? ich kann mir darunter sehr wenig vorstellen:

DB Error: insufficient permissions
bweichel
 
Posts: 16
Joined: 17. July 2007 20:46

Postby Wiedmann » 07. August 2007 10:10

meinst du wirklich das es daran liegt?

Nein. Aber so wäre dein Code korrekt (nach dem PEAR Coding Standard)

Code: Select all
DB Error: insufficient permissions

was besagt die fehlermeldung denn überhaupt?

-> keine Berechtigung

Wenn ich hier raten müsste, dann taucht diese Meldung wohl hier auf:
Code: Select all
$db =& DB::connect($dsn);

da:
Code: Select all
$dsn = "mysql://test:test@localhost/newsletter";

wohl der Benutzer "test", mit dem Passwort "test", keine Zugriff auf die Datenbank "newsletter" hat.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby bweichel » 07. August 2007 10:43

Ja, das mit dem PEAR Coding Standard habe ich schon bei der Klammersetzung bemerkt. Da macht irgendwie auch jeder was er will.

Also das mit den falschen Zugangsdaten kann nicht sein, dann heißt die Meldung nämlich:

Code: Select all
DB Error: connect failed


Ich habe es aber trotzdem ausprobiert, also mit einem Passwortwechsel... geht immer noch nicht. Noch ne Idee?
bweichel
 
Posts: 16
Joined: 17. July 2007 20:46

Postby Wiedmann » 07. August 2007 11:34

Also das mit den falschen Zugangsdaten kann nicht sein,

Also MySQL ist da anderer Meinung ;-) (Weil sonst eben dieser Fehler nicht kommen würde!)

Du könntest auch mal dieses nehmen, um den O-Ton von MySQL zu sehen:
Code: Select all
die($db->getDebugInfo());


dann heißt die Meldung nämlich: DB Error: connect failed

Du erinnerst dich?
Wiedmann wrote:wohl der Benutzer "test", mit dem Passwort "test", keine Zugriff auf die Datenbank "newsletter" hat.

--> Nur weil du dich mit dem Server verbinden darfst, heisst das ja nicht, dass du diese DB benutzen darfst.

BTW: Da es diesen User (und Datenbank) beim XAMPP ja nicht gibt, hast du evtl. beim Anlegen von diesem was falsch gemacht?
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany


Return to PHP

Who is online

Users browsing this forum: No registered users and 13 guests