dedlfix: SQLite3 vs. PDOSqlite

Beitrag lesen

Tach!

  • unterschiedliche Systeme = unterschiedliche Eigenschaften = unterschiedliche Bedienung
    Meinst Du mit "unterschiedliche Systeme" unterschiedliche DB-Typen (wie SQLite <> MySQL) oder unterschiedliche Server- oder php-Konfigurationen?

Unterschiedliche DBMS. Jedes hat seine eigene API, weil es seine individuellen Leistungsmerkmale unterstützen will. Üblicherweise hat man dann mehr oder weniger 1:1 PHP-Funktionen gegen dieses DBMS-API programmiert, um die Funktionalität nutzen zu können.

Eigenschaften von Abstraktionen

  • beim Wechsel des DBMS sind keine neuen Funktionen kennenzulernen
    Also, die Vorstellung, das ich unter der Bedienung einfach mal von SQLite zu MySQL wechsele, klingt einfach ein bisschen zu traumhaft...

Die Funktionen für 08/15-Datenbankhandling sind mit einer Abstraktion für jedes DBMS gleich. Aber damit bekommst du nicht alle Eigenheiten des DBMS wegnivelliert. Die Unterschiede der SQL-Dialekte bleiben vorhanden. Wenn du also Dinge verwendest, die nicht im Standard sind, kannst du eine Migration durch einfaches Austauschen des Connetion-Strings vergessen.

Die obige Liste ist sicher unvollständig und subjektiv. Ist es dir wichtig, eine einheitlich verwendbare API zu haben oder möchtest du die Eingenschaften des DBMS bestmöglich nutzen können?
Wichtig ist mir, die Query's sicher zu bauen. Dafür schätze ich die Methode SQLite3::escapeString. Die gibt es aber bei PDO gar nicht.

Verwende Prepared Statements, da besteht keine Notwendigkeit des Escapens. Es darf auch nicht getan werden, wenn du deine Daten icht verfälschen willst. Oder du nimmst die dafür vorgesehene Funktion: PDO::quote(). Diese kümmert sich nicht nur um das Escapen, sondern auch um das Quoten, denn Quote-Zeichen können je nach DBMS auch unterschiedlich sein.

Außerdem schätze ich ->prepare() und ->exec(), die gibt es aber bei beiden.

Ah ja, warum willst du dann noch escapen/quoten?

dedlfix.