• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Warum von mysql_ weg?

vanGoss

Neues Mitglied
Hab mich grad mal halb ziellos rumgesucht und bin auf folgenden Satz gestoßen:
„Nutze statt mysql besser mysqli oder (meiner Ansicht nach noch besser) PDO oder auf lange Sicht am besten gleich eine echte Abstraktionsschicht (ORM).“
In dem Thread kam nicht raus warum( ging ja auch um "MYSQLI vs PDO") und als ich in nem anderen Forum hab ich gelesen, dass es(mysqli) nicht schneller sondern eher langsamer ist, es aber sowohl komfortabler als auch sicherer ist.

Wenn mir aber der vorhandene Komfort ausreicht und ich alle Eingaben mit mysql_real_escape_string escape, welchen Grund gibt es dann noch gegen mysql_(außer dass einige es abschaffen wollen ;)).
Kurz davor hab ich auch nochmal gelesen, dass zwar add_slashes() Exploits ermöglicht, mysql_real_escape_string aber sicher ist.

Danke schonmal für Aufklärung.


Gruß
vanGoss
 
Ja, Finger weg von addslashes, das kann man nicht oft genug sagen. Nur die jeweiligen Funktionen des Datenbank-Treibers nutzen. (Die sind prinzipiell bei korrekter Anwendung alle gleich sicher, ja.)

Die Sache mit mysql und Co. wird hier recht anschaulich erklärt:

- PHP: Overview - Manual (ab der Überschrift „What are the main PHP API offerings for using MySQL?“)

Zusammengefasst: Die mysql-Erweiterung ist seit MySQL 4.1.3 veraltet. Die Version ist ungefähr 7 Jahre alt.

Im Handbuch heißt es dazu auch mehrfach:

If you are using MySQL versions 4.1.3 or later it is strongly recommended that you use the mysqli extension instead.

Natürlich musst du einer Empfehlung in einer technischen Dokumentation nicht folgen, aber du kannst im Allgemeinen davon ausgehen, dass die Autoren Empfehlungen nicht leichtfertig aussprechen.

Was mysqli gegen PDO angeht: Ich finde das API von PDO besser (auch weil es den Zugriff auf verschiedene Datenbanksysteme in einem API vereinheitlicht). Generell geben die sich aber nicht viel. mysqli hat den Vorteil, den nativen, direkteren Zugriff zu bieten, PDO hat den Vorteil, eine einheitliche Schnittstelle für verschiedene DBMS zu bieten.
 
Vielen Dank, das ist schon ausgedruckt und wird spätestens am Montag in der ersten Stunde nach den Ferien in Mathe gelesen, dass ich da auch mal was lerne ;)


Gruß
vanGoss
 
Zurück
Oben