Homepage selbermachen 7.846 Themen, 35.563 Beiträge

PDO und mysql_real_escape_string()

hansapark / 3 Antworten / Flachansicht Nickles

Hallo.

Ich habe auf meiner Webseite die Mysql-Funktionen durch PDO mit prepared statements ersetzt.

die abfrage sieht so aus: "where x = ? and y = ? usw.."
und dann mit "execute(array($a, $b)) usw.."

Und statt auf jeder Seite ganz oben generell eine DB-Verbindung herzustellen, habe ich nun nur noch eine config-datei eingebunden. die verbindung wird erst durch pdo hergestellt dort wo sie gebraucht wird.

Wenn ich nun meine alte Mysql-Verbindung rausnehme funktioniert die Funktion mysql_real_escape_string nicht mehr und erzeugt Fehlermeldungen.

Ich dachte das wäre eine PHP-Funktion, aber anscheinend braucht sie eine DB-Verbindung.

Welchen ersatz gibt es um eingaben für PDO zu escapen, oder ist das gar nicht mehr nötig?
Ich habe was gelesen von parameter binding, aber weiß nicht ob ich das indirekt schon gemacht habe (siehe oben mit den fragezeichen).

bei Antwort benachrichtigen
hansapark xafford „Wenn Du Prepared Statements nutzt dann brauchst Du kein mysql_real_escape_string...“
Optionen

Hallo.

Danke für die Erklärung.
Ich habe nun nur noch ein $_GET['xy'] und ein settype="string" bzw. "integer" vor den PDO-"Aktionen" stehen.
Da wo ich ganz sicher gehen will mach ich es nun mit if und meinen erlaubten Werten.
z.b.

if($jahr == 2005 or
   $jahr == 2006 or
   $jahr == 2007){
weiter..
}else{
ansonsten..
}

thx
h.

bei Antwort benachrichtigen