PHP Best Practices: Interaktion mit Datenbanken

Blackbenji

Lieutenant
Dabei seit
Nov. 2009
Beiträge
557
Hallo zusammen,

ich habe mal eine Frage zum Thema Interaktion mit Datenbanken.

PHP:
$table = "users";
$query = "SELECT * FROM $table"

PHP:
$query = "SELECT * FROM users"

Beides funktioniert.

Hintergrund der Frage: ich habe ca. 10 Tabellen mit identischen Spalten aber unterschiedlichen Daten.
Nun kann ich für jede Tabelle eine eigene Methode (OOP) erstellen oder diese dynamisch mit der Variable nur einmal erstellen.

Im Sinne von OOP sollte man ja sich wiederholender Code vermeiden, ich frage mich jetzt was davon als Best Practices gilt?
 
benutz ein orm anstatt da selber rumzupfuschen.. das wäre in dem fall best practice
 
@kling1: Welches ORM Framework empfiehlst du?

@topic:
Grundsätzlich solltest du Prepared Statements in Erwägung ziehen, insbesondere wenn die Abfragen Benutzereingaben enthalten. Siehe:
http://nl3.php.net/manual/de/mysqli.prepare.php

Wenn die Tabellen identisch sind kannst du den Tabellennamen dynamisch übergeben (wie in deinem ersten Beispiel, machen auch einige Frameworks wie zb die Typo3 DB API so) und dabei stets die Result-Rows als Array zurückgeben.
 
@Einhörnchen: danke. ich nutze bereits PDO mit Prepared Statements. Ich war mir jetzt nur unschlüssig ob ich den Code immer wieder neu schreiben muss wenn sich nur der Tabellenname ändert.
 
@Einhörnchen..
die standard empfehlungen für php.. doctrine (datamapper) oder laravel eloquent (active record) ohne laravel halt

vll auch einfach etwas kleineres projekt wie spot2 angucken http://phpdatamapper.com/
 
Natürlich muss man keinen ORM benutzen, sondern kann seine SQL-Befehle auch per Hand schreiben. Kommt immer auf den Einzelfall an, was sich besser eignet. Ansonsten schließe ich mich Einhörnchen an: Tabellennamen als Parameter übergeben und nach Möglichkeit Prepared Statements verwenden.
 
Zurück
Top