Homepage selbermachen 7.851 Themen, 35.615 Beiträge

PDO und mysql_real_escape_string()

hansapark / 3 Antworten / Baumansicht 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
cscherwinski hansapark „PDO und mysql_real_escape_string()“
Optionen

Hallo hansapark,
Konntest Du das Problem lösen?
Das würde bestimmt das Forum interessieren!
Danke für eine Rückmeldung!

Viel Erfolg wünscht Christian
bei Antwort benachrichtigen
xafford hansapark „PDO und mysql_real_escape_string()“
Optionen

Wenn Du Prepared Statements nutzt dann brauchst Du kein mysql_real_escape_string mehr. mysql_real_escape_string braucht die Datenbankverbindung, weil es anhand dieser bestimmt wie die Daten escaped werden müssen... will man ohne Datenbankverbindung escapen dann nimmt man das alte mysql_escape_string.

Pauschalurteile sind immer falsch!!!
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