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).
Homepage selbermachen 7.846 Themen, 35.563 Beiträge
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.