[PHP5] Verbesserte MySQL Erweiterung - Umstieg?

Danielku15

Erfahrenes Mitglied
Hallo Leute.
Ich arbeite z.Z. an meinem neuen Projekt (CoderLine.net). Der Hintergrund ist jetzt unwichtig es geht um die Programmierung/Planung des Portals. Wie ihr sicher bereits wisst, ist dass mit PHP5 eine "Verbesserte MySQL Erweiterung" mitgeliefert wurde. Wie rentabel ist es nun wirklich auf diese Erweiterung umzusteigen?
Gibts schon Klassen welche die die Arbeit mit der Erweiterung erleichtern (Resourcenfreigabe, Querys, Connection-Management)?
Gibts Unterschiede zum OOP-Stil ($mysqliConn->query(..)) und zum Prozeduralen (mysqli_query($mysqliConn)) bis auf die Handhabung? Hat jemand von euch schon Erfahrungen mit der Erweiterung gemacht?
Gerade in Thema Sicherheit soll diese Erweiterung mit den Prepared Statements ja extreme Fortschritte gemacht haben.

Was haltet ihr so von der Erweiterung?

Gruß Daniel
 
Aaalso

Hallo Leute.
Ich arbeite z.Z. an meinem neuen Projekt (CoderLine.net). Der Hintergrund ist jetzt unwichtig es geht um die Programmierung/Planung des Portals. Wie ihr sicher bereits wisst, ist dass mit PHP5 eine "Verbesserte MySQL Erweiterung" mitgeliefert wurde. Wie rentabel ist es nun wirklich auf diese Erweiterung umzusteigen?
die neue MySQLi-Extension (ext/mysqli) ist immernoch experimentell weshalb sich mit jedem Release die Schnittstelle ändern kann (nicht muss).
Deutlich besser läufst du da, wenn du PDO verwendest, da es auch Prepared Statements und alles andere hat ;)


Gibts schon Klassen welche die die Arbeit mit der Erweiterung erleichtern (Resourcenfreigabe, Querys, Connection-Management)?
zu ext/mysqli weiß ich es nicht, aber bei PDO kann ich dir nur wärmstens Zend_Db aus dem Zend-Framework ans Herz legen.


Gibts Unterschiede zum OOP-Stil ($mysqliConn->query(..)) und zum Prozeduralen (mysqli_query($mysqliConn)) bis auf die Handhabung? Hat jemand von euch schon Erfahrungen mit der Erweiterung gemacht?
Nein, ein Unterschied stellt nur die Aufrufsart dar, die prozedurale Schnittstelle wurde als Ausgleich für Anwendungen geschaffen, die ext/mysqli einsetzen wollen, aber nicht alles neu programmieren können, denn der Austausch von ext7mysql in ext/mysqli ist im Programmcode relativ simpel

Gerade in Thema Sicherheit soll diese Erweiterung mit den Prepared Statements ja extreme Fortschritte gemacht haben.
deine Anwendung sollte auch ohne Prepared Statements sicher sein, denn das validieren des Inputs und gewährleisten der Sicherheit der Anwendung ist deine Aufgabe und nicht die des DBMS ;)


Was haltet ihr so von der Erweiterung?
da die Erweiterung immernoch als experimentell deklariert ist, fällt sie für mich weg, auch aus dem Grund, dass sie keinen merklichen Vorteil gegenüber PDO bietet, welches sogar eine Datenbankunabhängigkeit bietet
 
Ich kann mich in sämtlichen Ausführungen Tobias anschließen, mehr gibt es da eigentlich in Kürze nicht zu sagen.

Was haltet ihr so von der Erweiterung?

Habe eine Applikation auf Basis der ext/mysqli gebaut und bin recht zufrieden, da sie ein wenig schneller zu arbeiten scheint - Die besagte Applikation ist jedoch eher auf geringe Zugriffszahlen ausgelegt. Prepared Statements sind gut und schön, aber ehrlich gesagt, finde ich die dazu gebrauchten Funktionen nicht wirklich hilfreich. Habe mir letztenendes eine eigene MySQLi-Klasse gebaut, die unter anderem das ständige Angeben der Objektreferenz erspart, und die dazu noch ein paar angepasste Funktionen beinhaltete.
Was mir ein wenig missfällt, sind die fehlenden persistenten Verbindungsmöglichkeiten und das versteckte Vorhandensein der Verbindungsressource. So ist es zB gar nicht mehr möglich, ext/mysql Funktionen zu verwenden, die auf eine MySQL-Ressource setzen.

Für große Projekte würde ich eine leicht zu portierende Klasse entweder selbst bauen oder eine vorgefertigte PDO, die diverse Factory-Module bereitstellt und den Zugriff vereinheitlicht, verwenden.
Insgesamt ist die Erweiterung etwas schneller und bietet mehr Funktionalität, aber wenn die Applikation schon auf ext/mysql aufbaut und abgesichert wurde, ist MySQLi meiner Meinung nach nicht mehr als eine Spielerei, die wohl erst in einem späteren Release von PHP komplett ausgereift sein wird.
 
Die Datenbankaufgaben bestehten bei mir zu 100% nur aus SELECT, UPDATE, INSERT und DELETE. Die Einträge verwalte ich über meine DAOs. Arbeite auch gerade an einem DAO-Generator welcher aus den Datenbanken/Tabellen automatisch DAOs generiert. Und da muss ich natürlich eine einheitliche Datenbankklasse hinterlegen damit die DAOs auch wirklich funktionieren.
 
Zurück