Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
de:entwickler:datenbankzugriffsklasse [2008/06/15 17:24] – angelegt fassede:entwickler:datenbankzugriffsklasse [2012/05/12 00:54] (current) thomas-rcv
Line 2: Line 2:
  
  
-Ab der Version 2.0 gibt es nun eine Klasse für die Datenbankzugriffe. Diese Klasse besteht, ähnlich der Tabellenzugriffsklassen, aus 2 Teilen. Einer allgemeinen Klasse DB und dann der jeweiligen Erweiterung, in unserem Fall MySqlDB.+Ab der Version 2.0 gibt es nun eine Klasse für die Datenbankzugriffe. Diese Klasse besteht, ähnlich der Tabellenzugriffsklassen, aus 2 Teilen. Einer allgemeinen Klasse **DB** und dann der jeweiligen Erweiterung, in unserem Fall **MySqlDB**.
  
-Vorteil dieser neuen Klasse ist z.B. eine einheitliche Fehlerbehandlung. Tritt ein Fehler im SQL-Statement auf, so wird nun automatisch eine aufbereitete Fehlermeldung ausgegeben und es muss nicht mehr, wie bisher, die Funktion db_error manuell aufgerufen werden. Außerdem ist hier auch die Aufrufverfolgung verbessert. Es wird nun jedes Script und jede Zeile angegeben, bei der der Fehler aufgetreten ist, ausgehend auf aufgerufenen Script des Users.+Vorteil dieser neuen Klasse ist z.B. eine einheitliche Fehlerbehandlung. Tritt ein Fehler im SQL-Statement auf, so wird nun automatisch eine aufbereitete Fehlermeldung ausgegeben und es muss nicht mehr, wie bisher, die Funktion //db_error// manuell aufgerufen werden. Außerdem ist hier auch die Aufrufverfolgung verbessert. Es wird nun jedes Script und jede Zeile angegeben, bei der der Fehler aufgetreten ist, ausgehend auf aufgerufenen Script des Users.
  
-Neben der Fehlerbehandlung habe ich jetzt auch ein Logging der SQL-Aufrufe eingebaut. Sofern in der config.php die Variable $g_debug = 1 gesetzt ist und in der php.ini das PHP-Logging aktiviert ist, kann man in der PHP-Logdatei nun alle SQL-Statements sehen. Somit kann man sich schnell die fehlerhaften Statements anschauen oder prüfen, welche Scripte relativ viele Datenbankzugriffe haben.+Neben der Fehlerbehandlung ist jetzt auch ein Logging der SQL-Aufrufe eingebaut. Sofern das [[de:entwickler:php.ini_einstellungen#admidio-debug-flag|Admidio-Debug-Flag]] gesetzt ist und in der **php.ini** das PHP-Logging aktiviert ist, kann man in der PHP-Logdatei nun alle SQL-Statements sehen. Somit kann man sich schnell die fehlerhaften Statements anschauen oder prüfen, welche Scripte relativ viele Datenbankzugriffe haben.
  
-Ein weiterer Vorteil der neuen Klassen ist die einfache Anbindung an weitere Datenbanken. Mit relativ wenig Aufwand können wir später Admidio auch auf anderen Datenbanken laufen lassen.+Ein weiterer Vorteil der neuen Klassen ist die einfache Anbindung an weitere Datenbanken. Mit relativ wenig Aufwand kann Admidio später auch auf anderen Datenbanken laufen.
  
-In der common.php wird für diese Klasse wieder ein globales Objekt $g_db definiert, welches im Moment per Default nur auf eine MySQL-Datenbank zugreifen kann. Die einzelnen Methodenaufrufe habe ich an unsere bisherigen MySQL-Funktionsaufrufe angelehnt nur fehlt das mysql_ vor der Funktion.+In der common.php wird für diese Klasse wieder ein globales Objekt **$gDb** definiert, welches im Moment per Default nur auf eine MySQL-Datenbank zugreifen kann. Die einzelnen Methodenaufrufe sind an die bisherigen MySQL-Funktionsaufrufe angelehnt nur fehlt das //mysql_// vor der Funktion.
  
 Im Code sieht die Änderung dann folgendermaßen aus:\\  Im Code sieht die Änderung dann folgendermaßen aus:\\ 
Line 25: Line 25:
 **Neuer Code** **Neuer Code**
 <code php>$sql    = "SELECT * FROM ". TBL_DATES; <code php>$sql    = "SELECT * FROM ". TBL_DATES;
-$dates_result = $g_db->query($sql);+$dates_result = $gDb->query($sql);
  
-while($row = $g_db->fetch_array($dates_result))+while($row = $gDb->fetch_array($dates_result))
 { {
    ...    ...
  • de/entwickler/datenbankzugriffsklasse.1213543467.txt.gz
  • Last modified: 2008/06/15 17:24
  • by fasse