Philip: Escape-String mit unterschiedlichen Datenbanken

Hallo,

für mySQL gibt es mysql_escape_string und mysql_real_escape_string. Für PostgresQL gibt es pg_escape_string.

Unterscheiden sich die Maskierungen groß zwischen den unterschiedlichen Datenbanken? Wo kann man genaueres nachlesen, welche Zeichen jeweils maskiert werden? Hat PHP auch Escape-Funktionen für andere Datenbanken?

  1. echo $begrüßung;

    Unterscheiden sich die Maskierungen groß zwischen den unterschiedlichen Datenbanken?

    Du musst alle Zeichen des jeweiligen DBMS berücksichtigen. Ob es bei dem einen mehr oder dem anderen weniger sind, ist nicht weiter relevant.

    Wo kann man genaueres nachlesen, welche Zeichen jeweils maskiert werden?

    In der Dokumentation des jeweiligen DBMS. Für MySQL wäre das das Unterkapitel Strings im Kapitel Language Structure

    Hat PHP auch Escape-Funktionen für andere Datenbanken?

    Schau dazu bitte in das jeweilige Kapitel des PHP-Handbuchs. (Beim Durchschauen bekommst du nebenbei gleich noch einen Überblick, was es alles gibt.)

    Und nein, nicht in allen DBMS-Extensions gibt es Escape-Funktionen. Beispielsweise für Informix ist keine dabei. Du kannst aber auf Datenbankabstraktionsschichten zugreifen, wie PDO, MDB2 in PEAR, Zend_Db im Zend Framework, ... Diese bieten für alle unterstützten DBMS Escape-Funktionen an.

    echo "$verabschiedung $name";