AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein [PHP] MDB2: Script bricht bei Connect einfach lautlos ab
Thema durchsuchen
Ansicht
Themen-Optionen

[PHP] MDB2: Script bricht bei Connect einfach lautlos ab

Ein Thema von Namenloser · begonnen am 6. Aug 2009 · letzter Beitrag vom 7. Aug 2009
Antwort Antwort
Seite 1 von 2  1 2      
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#1

[PHP] MDB2: Script bricht bei Connect einfach lautlos ab

  Alt 6. Aug 2009, 21:20
Hallo,

ich werde noch wahnsinnig . Ich versuche jetzt schon den ganzen Tag, endlich MDB2 zum Laufen zu kriegen. Mittlerweile habe ich PEAR mitsamt dem MDb2-Paket installiert bekommen.

Allerdings heißt das nicht, dass es funktioniert. Ich habe folgendes Script:

Code:
<?php
  require_once("MDB2/MDB2.php");
//  $dsn = 'mysqli://user:password@localhost/database';  
  $dsn = array(
      'phptype' => 'mysqli',
      'username' => 'user',
      'password' => 'password',
      'hostspec' => 'localhost',
      'database' => 'database',
  );
  echo "vor Connect";    
  echo MDB2::apiVersion(); // bis hier kommt es
  $mdb2 =& MDB2::singleton($dsn);        
  echo "nach Connect";      
  if (PEAR::isError($mdb2)) {   
      echo "errror";
      die($mdb2->getMessage());
  } 
?>
Leider kommt das Script nur bis zu besagter Stelle. (Ausgabe: "vor Connect2.4.1"). Danach passiert einfach überhaupt nichts mehr, bzw. die Ausgabe endet an dieser Stelle. Es gibt auch keine Fehlermeldung.

Was bitte mache ich falsch?
  Mit Zitat antworten Zitat
Benutzerbild von S2B
S2B

Registriert seit: 1. Feb 2004
Ort: Aachen
1.268 Beiträge
 
#2

Re: [PHP] MDB2: Script bricht bei Connect einfach lautlos ab

  Alt 6. Aug 2009, 22:00
Was passiert denn, wenn du den apiVersion()-Aufruf auskommentierst?

Edit: Hmm, das wird wohl nicht zielführend sein... hatte mich verguckt.
Simon Praetorius
Gruß
S2B
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#3

Re: [PHP] MDB2: Script bricht bei Connect einfach lautlos ab

  Alt 6. Aug 2009, 22:37
Zitat von NamenLozer:
Leider kommt das Script nur bis zu besagter Stelle. (Ausgabe: "vor Connect2.4.1"). Danach passiert einfach überhaupt nichts mehr, bzw. die Ausgabe endet an dieser Stelle. Es gibt auch keine Fehlermeldung.

Was bitte mache ich falsch?
Auf welchen Level ist das Error-Reporting? Wenn dus nicht weist: schreib mal an den Anfang: error_reporting(E_ALL);

Und die Seite ist wirklich fertig geladen? Nicht das das Teil noch rechnet und due schon abbrichst ...
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#4

Re: [PHP] MDB2: Script bricht bei Connect einfach lautlos ab

  Alt 6. Aug 2009, 23:59
Danke für eure Antworten,

apiVersion war nur zum Testen, ob die Klasse richtig eingebunden wird etc, ohne passiert genau das gleiche.

Zitat von jfheins:
Auf welchen Level ist das Error-Reporting? Wenn dus nicht weist: schreib mal an den Anfang: error_reporting(E_ALL);
Das ändert leider auch nichts.

Zitat von jfheins:
Und die Seite ist wirklich fertig geladen? Nicht das das Teil noch rechnet und due schon abbrichst ...
Die Seite ist zu 100% fertig geladen.

Das macht das ganze leider nicht gerade einfacher
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: [PHP] MDB2: Script bricht bei Connect einfach lautlos ab

  Alt 7. Aug 2009, 05:34
Lass mal das & weg
Markus Kinzler
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#6

Re: [PHP] MDB2: Script bricht bei Connect einfach lautlos ab

  Alt 7. Aug 2009, 11:42
Zitat von mkinzler:
Lass mal das & weg
Habe ich auch schon probiert, ebenso wie die gesamte zuweisung zu entfernen, gebracht hat es leider nichts. Ich habe auch schon erfolglos singleton gegen factory ausgetauscht, aber intern ruft singleton auch nur factory auf, also war nichts anderes zu erwarten.
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#7

Re: [PHP] MDB2: Script bricht bei Connect einfach lautlos ab

  Alt 7. Aug 2009, 12:24
Hi,

hast du den Installationsanweisungen gemäß Dokumentation gefolgt? Wenn ich mich nicht irre muss man für jede Datenbank auch einen dazugehörigen DB-Treiber installieren, ist davon aus mindestens einer vorhanden? Was passiert wenn du mal andere Daten benutzt, zB eine andere Datenbank oder gar einen anderen Treiber? Wie sieht es aus, wenn du den DSN wie im Kommentar als String übergibst? Steht evtl. im Apache- oder Sys-Log was? Findet eine Connection zu MySQL statt (siehe MySQL-Log)? Kannst du das Script mal über die Kommandozeile ausführen? Dafür brauchst du das Paket php5-cli unter Debian / Ubuntu. Bei Source-Installation / Gentoo müsste das auch so gehen. Manchmal sieht man da Meldungen, die man im Apache nicht sieht.

Btw: Die Referenz-Zuweisung mittels =& ist in PHP5 übrigens veraltet und wirft bei error_reporting E_ALL einen E_STRICT Error. Da du diesen ja scheinbar auch nicht siehst, scheint der Methodenaufruf von singleton() ja schon nicht mehr zurück zu kehren.

Mit freundlichen Grüßen,

Valle
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: [PHP] MDB2: Script bricht bei Connect einfach lautlos ab

  Alt 7. Aug 2009, 12:34
E_ALL reicht auch nicht...
Code:
error_reporting(E_ALL | E_STRICT);
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#9

Re: [PHP] MDB2: Script bricht bei Connect einfach lautlos ab

  Alt 7. Aug 2009, 13:18
Hallo

Zitat von Valle:
hast du den Installationsanweisungen gemäß Dokumentation gefolgt? Wenn ich mich nicht irre muss man für jede Datenbank auch einen dazugehörigen DB-Treiber installieren, ist davon aus mindestens einer vorhanden?
Ja, diese Anleitung habe ich gelesen. Die Treiber sind auch installiert (mysql und mysqli), wenn es nicht so wäre soltle vor allem eine entsprechende Fehlermeldung kommen.
Zitat von Valle:
Was passiert wenn du mal andere Daten benutzt, zB eine andere Datenbank oder gar einen anderen Treiber? Wie sieht es aus, wenn du den DSN wie im Kommentar als String übergibst?
Ich habe es bisher mit mysql und mysqli versucht, mit einer anderen Datenbank noch nicht. Den DSN hatte ich zu Beginn als string übergeben. Erst als das nicht klappte, habe ich es mit dem Array probiert.
Zitat von Valle:
Steht evtl. im Apache- oder Sys-Log was? Findet eine Connection zu MySQL statt (siehe MySQL-Log)?
Also ich benutze Lighttpd, und in dessen Serverlog konnte ich nichts finden. Wo finde ich denn die Logs von MySQL?
Zitat von Valle:
Kannst du das Script mal über die Kommandozeile ausführen? Dafür brauchst du das Paket php5-cli unter Debian / Ubuntu. Bei Source-Installation / Gentoo müsste das auch so gehen. Manchmal sieht man da Meldungen, die man im Apache nicht sieht.
Okay, also das brignt mich schon mal einen Schritt weiter. (Der Server läuft übrigens unter Windows, auf meinem Hauptrechner. Der Grund ist, dass ich meine Webseite überarbeiten will und dafür gerne einen lokalen Server zum Testen hätte. Außerdem nutze ich das ganz gerne, um Dateien zu verschicken)

Die Ausgabe über die Kommandozeile ist folgende (damit isch niemand wundert, ich habe die Ausgabe des Scripts aus Gründen der Übersichtlichkeit leicht verändert):
Code:
PHP Deprecated: Assigning the return value of new by reference is deprecated in C:\Program Files\Lighty2Go\PHP\PEAR\MDB2\MDB2.php on line 390
PHP Strict Standards: Redefining already defined constructor for class MDB2_Driver_Common in C:\Program Files\Lighty2Go\PHP\PEAR\MDB2\MDB2.php on line 1310
PHP Deprecated: Assigning the return value of new by reference is deprecated in C:\Program Files\Lighty2Go\PHP\PEAR\MDB2\MDB2.php on line 1885
PHP Deprecated: Assigning the return value of new by reference is deprecated in C:\Program Files\Lighty2Go\PHP\PEAR\MDB2\MDB2.php on line 2572
PHP Deprecated: Assigning the return value of new by reference is deprecated in C:\Program Files\Lighty2Go\PHP\PEAR\MDB2\MDB2.php on line 2595
PHP Deprecated: Assigning the return value of new by reference is deprecated in C:\Program Files\Lighty2Go\PHP\PEAR\MDB2\MDB2.php on line 2940
PHP Strict Standards: Redefining already defined constructor for class MDB2_Result_Common in C:\Program Files\Lighty2Go\PHP\PEAR\MDB2\MDB2.php on line 3377
PHP Strict Standards: Redefining already defined constructor for class MDB2_Row in C:\Program Files\Lighty2Go\PHP\PEAR\MDB2\MDB2.php on line 3850
PHP Strict Standards: Redefining already defined constructor for class MDB2_Statement_Common in C:\Program Files\Lighty2Go\PHP\PEAR\MDB2\MDB2.php on line 3907
PHP Strict Standards: Redefining already defined constructor for class MDB2_Module_Common in C:\Program Files\Lighty2Go\PHP\PEAR\MDB2\MDB2.php on line 4191
[color=red]
PHP Warning: include_once(PEAR5.php): failed to open stream: No such file or directory in C:\Program Files\Lighty2Go\PHP\PEAR\PEAR.php on line 766
PHP Warning: include_once(): Failed opening 'PEAR5.php' for inclusion (include_path='.;c:\program files\lighty2go\php\pear') in C:\Program Files\Lighty2Go\PHP\PEAR\PEAR.php on line 766
PHP Strict Standards: Declaration of MDB2_Driver_Common::raiseError() should be compatible with that of PEAR::raiseError() in C:\Program Files\Lighty2Go\PHP\PEAR\MDB2\MDB2.php on line 990
[/color]
** vor Connect
PHP Strict Standards: Non-static method MDB2::apiVersion() should not be called statically in D:\htdocs\beta\lib\connect.php on line 18
** 2.4.1
PHP Strict Standards: Non-static method MDB2::singleton() should not be called statically in D:\htdocs\beta\lib\connect.php on line 19
PHP Strict Standards: Non-static method MDB2::parseDSN() should not be called statically in C:\Program Files\Lighty2Go\PHP\PEAR\MDB2\MDB2.php on line 484
PHP Strict Standards: Non-static method MDB2::factory() should not be called statically in C:\Program Files\Lighty2Go\PHP\PEAR\MDB2\MDB2.php on line 500
PHP Strict Standards: Non-static method MDB2::parseDSN() should not be called statically in C:\Program Files\Lighty2Go\PHP\PEAR\MDB2\MDB2.php on line 376
PHP Strict Standards: Non-static method MDB2::loadClass() should not be called statically in C:\Program Files\Lighty2Go\PHP\PEAR\MDB2\MDB2.php on line 385
PHP Strict Standards: Non-static method MDB2::classExists() should not be called statically in C:\Program Files\Lighty2Go\PHP\PEAR\MDB2\MDB2.php on line 327
PHP Strict Standards: Non-static method MDB2::fileExists() should not be called statically in C:\Program Files\Lighty2Go\PHP\PEAR\MDB2\MDB2.php on line 335
PHP Strict Standards: Non-static method MDB2::raiseError() should not be called statically in C:\Program Files\Lighty2Go\PHP\PEAR\MDB2\MDB2.php on line 340
PHP Strict Standards: Non-static method PEAR::raiseError() should not be called statically in C:\Program Files\Lighty2Go\PHP\PEAR\MDB2\MDB2.php on line 574
PHP Strict Standards: Non-static method MDB2::errorMessage() should not be called statically, assuming $this from incompatible context in C:\Program Files\Lighty2Go\PHP\PEAR\MDB2\MDB2.php on line 972
PHP Strict Standards: Non-static method PEAR::isError() should not be called statically, assuming $this from incompatible context in C:\Program Files\Lighty2Go\PHP\PEAR\MDB2\MDB2.php on line 743
[color=red]
PHP Fatal error: Class 'PEAR5' not found in C:\Program Files\Lighty2Go\PHP\PEAR\PEAR.php on line 878
[/color]
[/color]
[edit]
Okay, also da fehlte tatsächlich die PEAR5.php im PEAR-Verzeichnis. Ich muss dazu sagen, dass ich PEAR manuell installiert habe, weil das Installer-Script nicht funktionierte. Jetzt wird zumindest eine Fehlermeldung ausgegeben, mit der man etwas mehr anfangen kann:
Code:
&#65279;** vor Connect
**2.4.1
** nach Connect
** Error
MDB2 Error: not found
Die frage ist jetzt allerdings: Heißt das, die Klasse MDB2 wurde nicht gefunden, der Treiber wurde nicht gefunden, oder die Datenbank wurde nicht gefunden?
[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#10

Re: [PHP] MDB2: Script bricht bei Connect einfach lautlos ab

  Alt 7. Aug 2009, 13:23
Da scheint was mit deiner PEAR-Installation nicht zu stimmen. Überprüfe mal den include_path und ob alles wichtigen PEAR-Dateien wirklich vorhanden sind. Ansonsten kann ich dir an dieser Stelle nicht mehr viel helfen, da ich weder Windows noch PEAR benutze.

Mit freundlichen Grüßen,

Valle
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz