dedlfix: $mysqli->insert_id oder $mysqli->lastInsertId() ?

Beitrag lesen

Tach!

Wenn man nur mit MySQL arbeitet, ist PDO eindeutig überskaliert. Das könnte man doch nur wirklich brauchen, wenn man den Datenbanktreiber ständig wecheln muss und nicht immer seine Seite der API ändern will.

Auch wenn man nur mit MySQL arbeitet ist PDO besonders bei den Prepared Statements anwenderfreundlicher als die MySQLi-Extension. Versuch mal eine Funktion zu schreiben, die als Parameter einen Statement-String und ein Array mit den Werten für die Platzhalter übernehmen soll, und die dann das Handling des Preparierens, Bindens (zweimal, Parameter und Rückgabewerte) und Ausführens nebst Fehlerbehandlung übernimmt, damit man das nicht tausendmal kopiert in seinem Program stehen hat. Man bricht sich dabei einen ab, weil der Bindingmechanismus auf einzelne Variablen und Referenzen darauf ausgelegt ist. Bei PDO kann man sich das Binding-Gehampel sparen und einfach beim Execute ein Array mit den Werten übergeben.

Ein vernünftig durchdachtes Modul mit MySQLi, dass z.B. dann auch sinngemäße Konvertierungen und Prüfung von Typen übernimmt, das Escaping durchführt, usw. (das würde hier zu weit führen), reicht bestimmt in 95% der Anwendungsfälle.

Was willst du bei Prepared Statements noch großartig konvertieren, typprüfen und maskieren? Für „95% der Anwendungsfälle“ ist PDO erfunden worden.

dedlfix.