Hallo Community
Ich will mich nun mal wieder PHP (5.2.6) widmen, komme sonst aber aus der ASP.NET Ecke. Aufgrund dessen möchte ich möglichst alles objekt-orientiert umsetzen, einfach der Gewohnheit wegen. Ich habe mich schon etwas eingelesen in die PHP-OOP und vermisse vieles, aber das wird schon.
Nun stellt sich mit die Frage, ob ich zu mysqli oder doch lieber zu PHP Data Objects greifen soll. Da die beiden Erweiterungen ja schon objekt-mäßig aufgebaut sind und beide prepared statements unterstützen, hab ich mir die mal kurz angesehen. Eigentlich gefällt mir PDO besser, mehr oo-like und ein paar coole Features (Daten aus der DB direkt in ein Zielobjekt stecken etc.), allerdings habe ich in einem englischen Forum folgendes gefunden:
Das bringt mich von meinem Favoriten PDO dann doch wieder etwas ab. Ich bin froh, wenn ich von mir selbst produzierte Bugs finde und ausmerzen kann, da brauch ich nicht noch ne weitere Fehlerquelle. Da ich auch längerfristig bei MySQL bleibe, bringt mir die Abstraktheit von PDO auch nicht viel.
Aber es macht nunmal den moderneren und umfangreicheren Eindruck und hat echt nette Möglichkeiten.
Was würdet ihr wählen?
Und mal abgesehen von meiner Situation, was ist sonst so zu sagen zum Thema "mysqli vs. PDO"?
---
Als letztes hab ich noch eine Frage zum Thema Sicherheit: ganz egal ob ich nun mysqlis oder PDOs prepared statements verwende, auf was muss noch achten, bevor eine Usereingabe in die DB geschickt wird?
Vor Injections dürfte ich nun geschützt sein, soll trotzdem noch eine manuelle Überprüfung stattfinden? Falls ja, wie? Denn mysql_real_escape_string funktioniert ja logischerweise nicht, zumindest nicht bei PDO.
htmlspecialchars und htmlenities gibts noch, reicht ersteres? Ich denke, vor allem JavaScript in der DB sollte vermieden werden, HTML bei Usereingaben lieber auch.
Sonst noch was zu beachten?
Danke, Gruß
Ich will mich nun mal wieder PHP (5.2.6) widmen, komme sonst aber aus der ASP.NET Ecke. Aufgrund dessen möchte ich möglichst alles objekt-orientiert umsetzen, einfach der Gewohnheit wegen. Ich habe mich schon etwas eingelesen in die PHP-OOP und vermisse vieles, aber das wird schon.
Nun stellt sich mit die Frage, ob ich zu mysqli oder doch lieber zu PHP Data Objects greifen soll. Da die beiden Erweiterungen ja schon objekt-mäßig aufgebaut sind und beide prepared statements unterstützen, hab ich mir die mal kurz angesehen. Eigentlich gefällt mir PDO besser, mehr oo-like und ein paar coole Features (Daten aus der DB direkt in ein Zielobjekt stecken etc.), allerdings habe ich in einem englischen Forum folgendes gefunden:
Here's something else to keep in mind: For now (PHP 5.2) the PDO library is buggy. It's full of strange bugs. For example: before storing a PDOStatement in a variable, the variable should be unset() to avoid a ton of bugs. Most of these have been fixed in PHP 5.3 and they will be released in early 2009 in PHP 5.3 which will probably have many other bugs. You should focus on using PDO for PHP 6.1 if you want a stable release and using PDO for PHP 5.3 if you want to help the community.
Aber es macht nunmal den moderneren und umfangreicheren Eindruck und hat echt nette Möglichkeiten.
Was würdet ihr wählen?
Und mal abgesehen von meiner Situation, was ist sonst so zu sagen zum Thema "mysqli vs. PDO"?
---
Als letztes hab ich noch eine Frage zum Thema Sicherheit: ganz egal ob ich nun mysqlis oder PDOs prepared statements verwende, auf was muss noch achten, bevor eine Usereingabe in die DB geschickt wird?
Vor Injections dürfte ich nun geschützt sein, soll trotzdem noch eine manuelle Überprüfung stattfinden? Falls ja, wie? Denn mysql_real_escape_string funktioniert ja logischerweise nicht, zumindest nicht bei PDO.
htmlspecialchars und htmlenities gibts noch, reicht ersteres? Ich denke, vor allem JavaScript in der DB sollte vermieden werden, HTML bei Usereingaben lieber auch.
Sonst noch was zu beachten?
Danke, Gruß
Kommentar