12.10 Behandlung von Anführungszeichen

Problem

Sie müssen dafür sorgen, dass ein Text oder Binärdaten sicher in Abfragen eingesetzt werden können.

Lösung

Schreiben Sie alle Ihre Abfragen mit Platzhaltern und übergeben Sie die Werte zum Ausfüllen der Platzhalter in einem Array:

$sth = $dbh->query('UPDATE zodiac SET planet = ? WHERE id = 2',
                   array('Melmac'));

$rows = $dbh->getAll('SELECT * FROM zodiac WHERE planet LIKE ?',
                     array('M%'));

Sie können auch die PEAR DB-Funktion DB::quote( ) verwenden, um Sonderzeichen in Escape-Sequenzen zu verwandeln und sicherzustellen, dass Strings entsprechend markiert werden (normalerweise mit einfachen Anführungszeichen):

$planet = $dbh->quote($planet); $dbh->query("UPDATE zodiac SET planet = $planet WHERE id = 2"); ...

Get PHP 5 Kochbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.