ich hab ein kleines Problem ... für ein neues Projektchen wollte ich direkt mal mit mySQLi anfangen - bisher nur mySQL genutzt - aber das fällt ja irgendwann aus php raus.
Ich hatte bisher immer eine kleine Funktion über der ich u.a. mysql_real_escape_string und trim gefahren habe - und was so angefallen ist:
Code: Alles auswählen
function checking($stringg) {
$string = mysql_real_escape_string($stringg);
$string = trim($stringg);
[...]
return $string;
}
Das ganze klappt mit mySQLi nicht mehr.
mysql_real.... wird nicht unterstützt - klar.
Ich hab dann $mysqli->real_escape_string($db_insert); gefunden. Nur kann ich das nicht wie gewohnt in der Funktion einsetzen. Ok - vielleicht falsch gedacht. Also hab ich es vor dem Query-String eingesetzt:
(vereinfachte Darstellung vom "vorgeplänkel")
Code: Alles auswählen
// $blabla kommt aus einem XML und enthält z.b. /Die%20Toten%20Hosen%20(Anfang%20-%20Ende%20'02)/
$blabla = checking($blabla); // (ohne den real_escape_string; also eigentlich im Moment nur trim ...)
$db_insert = "insert .... $blabla"; // schwer vereinfachte Darstellung ;)
$mysqli->real_escape_string($db_insert);
$mysqli->query($db_insert);
Von den 10.000 Datensätzen die ich gerade importieren wollte, gingen nur 8500 rein. Die anderen 1500 will SQL nicht so akzeptieren:
/Die%20Toten%20Hosen%20(Anfang%20-%20Ende%20'02)/
Wie man hier sieht ist vor dem 02) ein ' ... ende im Gelände. Mit mysql_real_escape ging das sauber in die DB.
Was mache ich hier (grundlegend) falsch? Gehe ich mit real_escape den falschen weg?
EDIT:
wenn ich vor der erstellung der Query-Strings mit
Code: Alles auswählen
$blabla = $mysqli->real_escape_string($blabla);
Code: Alles auswählen
function checking($stringg) {
$string = trim($stringg);
$string = $mysqli->real_escape_string($string);
return $string;
}

Gruß
Wuppi