dedlfix: PDO maskieren wie mysql_real_escape_string

Beitrag lesen

echo $begrüßung;

Mein versuch  nun mit PDO:
erst der Aufbau:
try {
$DBO = new PDO('mysql:host=localhost;dbname=test_v8', $MYSQL['USER'], $MYSQL['PWD']);
} catch (PDOException $e) {
   print "Error!: " . $e->getMessage() . "<br/>";
   die();
}

Um PDO-Exceptions verwenden zu können, muss man die erst freigeben. PDO->setAttribute(PDO::ERRMODE_EXCEPTION). Das Script bei einem Fehler zu töten, halte ich nicht für benutzerfreundlich, eher für Fahrerflucht. So eine Textmeldung versaut einem das schöne, mühsam erstellte Design der Seite. Der Meldungstext ist nur für das Debugging hilfreich, der Anwender kann und soll damit nichts anfangen. Gib ihm eine Tröstmeldung, die sich anstelle des Datenbankergebnisses in den Rest der Seite integriert.

$valueroot = addslashes(ROOTDIR);
Ist das soweit ok?
oder wäre hier schon ein Prepared Statement angebracht oder einfacherweise "quote()"?

addslashes() macht irgendwas, nur nicht das zur Datenbank gehörende Escaping. Das macht PDO->quote().

Gibt es einen Ersatz für "or mysql_error()" ??
oder macht PDO dies automatisch wenn ein Fehler auftritt?

Siehe obigen Link. PDO kennt drei Arten, aufgetretene Fehler zu melden. Du kannst dir eine davon auswählen.

echo "$verabschiedung $name";