Hallo,
ich nutze die MySQL-Query-Funktion zum absichern meiner Querys hier aus dem Snippet-Forum. Mit leichtern Änderungen sieht diese bei mir wie folgt aus:
Nun habe ich das Problem, dass ich mit dieser Funktion gerne den IN-Tag in Verbindung mit einem Array-implode verwenden möchte. Dies sieht zur Zeit folgendermaßen aus:
Das Problem ist nun, dass die Funktion mir alle vom implode erzeugten ' escaped zu \', wodurch der Query nicht dem entspricht, was ich eigentlich haben möchte. Das Array muss aber abgesichert sein, da ich nicht kontrollieren kann, was da für Daten gesendet werden.
Leider fällt mir gerade nicht ein, wie ich dieses Problem lösen kann, aber vielleicht habt ihr ja eine gute Idee?!
Vielen Dank im Vorraus.
Gsus
ich nutze die MySQL-Query-Funktion zum absichern meiner Querys hier aus dem Snippet-Forum. Mit leichtern Änderungen sieht diese bei mir wie folgt aus:
PHP:
public function query($query) {
$this->_querycount++;
$args = func_get_args();
$vargs = array();
for($i=1; $i<func_num_args(); $i++) {
if(get_magic_quotes_gpc()) $args[$i] = stripslashes($args[$i]);
$vargs[] = mysql_real_escape_string($args[$i]);
}
$query = vsprintf($query, $vargs);
$result = mysql_query($query);
if($error = mysql_error()) $this->errorlog($query, $error);
return $result;
mysql_free_result($result);
}
Nun habe ich das Problem, dass ich mit dieser Funktion gerne den IN-Tag in Verbindung mit einem Array-implode verwenden möchte. Dies sieht zur Zeit folgendermaßen aus:
PHP:
$result = $mysql->query("SELECT `project_name`, `db_prefix`, `root_directory` FROM `".$mysql_data['prefix']."_projects` WHERE `project_name` IN ('%s')", implode($_POST['projects'], "', '"));
Das Problem ist nun, dass die Funktion mir alle vom implode erzeugten ' escaped zu \', wodurch der Query nicht dem entspricht, was ich eigentlich haben möchte. Das Array muss aber abgesichert sein, da ich nicht kontrollieren kann, was da für Daten gesendet werden.
Leider fällt mir gerade nicht ein, wie ich dieses Problem lösen kann, aber vielleicht habt ihr ja eine gute Idee?!
Vielen Dank im Vorraus.
Gsus