PHP Test - ADODB Treiber

Stopp Achtung
Achtung, diese Seite wurde für HTML 5 geschrieben. Scheinbar verwenden Sie einen alten Browser, der das nicht unterstützt. Es kann sein, dass nicht alle Seiten korrekt angezeigt werden. Sie sollten unbedingt eine aktuelle Version Ihres Browsers installieren.

Dieses Script zeigt, wie man mit ADODB für PHP auf unterschiedliche Datenbanken zugreifen kann. gezeigt wird der Zugriff auf einzelne Datensätze als auch die Verwendung des Pagers, der das seitenweise Listen von Datensätzen bereitstellt. Implementiert wurden Beispiele für die folgenden Datenquellen:

KurzbeschreibungTypeBeispiel für den Aufruf
Microsoft Accessaccessindex.php?page=adotest&type=access&nummer=2
CSV Textcsvindex.php?page=adotest&type=csv&nummer=2
Excelexcelindex.php?page=adotest&type=excel&nummer=2
mySqlmysqlindex.php?page=adotest&type=mysql&nummer=2
SqLite3sqliteindex.php?page=adotest&type=sqlite&nummer=2
 
 

Wird das Script test_ado_db.php ohne oder mit ungültigem Parameter type aufgerufen, so wird diese Hilfsseite angezeigt. Wird das Script ohne Auswahl der Datensatznummer aufgerufen, dann wird der Datensatz Nummer=3 angezeigt. Der Fetch Type bestimmt das Format der Rückgabe (normales und oder assoziatives Feld), nichzt alle Datenquellen unterstützen assoziative Felder. Mittels setzen der zusätzlichen Parameter debug und vardump kann man zusätzliche Informationen zu den Verarbeitungsschritten anfordern beziehungsweise den Inhalt der Variablen anzeigen.

Sie können nun entweder einen der oben bereitgestellten Link verwenden oder mit dem nebenstehenden Formular selbst die Testdaten auswählen. Wir haben in den Testdaten jeweils rund 100 Datensätze. Bei der Implementierung bin ich auch auf diverse unvorhergesehene Probleme gestoßen, die ich hier auch nicht verheimlichen möchte:

  • Der Upgrade von adodb V5.06 auf V5.19 war nicht aufwärts kompatibel, besonders wenn man den Parameter ADODB_FETCH_ASSOC setzt.
  • Daten aus Microsoft Datenquellen liefern den Windows Zeichensatz und man muss schon ein paar Tricks anwenden, um diese mit den Standardfunktionen von adobd korrekt in einer utf-8 erstellten Webseite darzustellen.
  • Scheinbar greift adodb auch auf DB Standartreiber des Betriebssystems zurück, was das Einbinden von MS Access oder Excel auf Linux Servernverhindert, CSV Dateien scheinen bisher gar nicht unterstützt zu sein.
  • mySql hat mit Version 5 die Zugriffmethode geändert, mir ist es nicht gelungen auf Version 4 Datenbanken zuzugreifen.
  • Beim Provider scheint auch die Unterstützung für sqLite nicht aktiviert zu sein. Unter Windows und Linux habe ich es somit nur geschafft, die Unterstützung für MySql zu erreichen.
  • Fehler werden teilweise im Code der ADODB Library abgefangen und PHP waird dann mit 'die' sofort beendet, was eine vernünftige Fehlerbehandlung im Code nicht möglich macht. Selbst wenn die Methode Connect eine Warnung ausgibt, bleibt Conn->ErrorMsg() leer.