Meinste sowas? (Sollte funktionieren, ist auf die Schnelle zusammengebaut)
Benutzung ist identisch zu sprintf, nur brauch er das Datenbankobjekt dabei.
function mysprintf($DB,$Query) {
$Arguments = func_get_args();
//Entferne die 2 ersten; $DB und $Query
array_shift($Arguments);
array_shift($Arguments);
//real_escape die anderen:
foreach($Arguments as $Id=>$Argument) {
$Arguments[$Id] = $DB->real_escape_string($Argument);
}
array_unshift($Arguments,$Query);
return call_user_func_array('sprintf',$Arguments);
}
Alternativ setz ich auch oft eine Billigloesung ein;
function mre($DB,$String) {
return $DB->real_escape_string($String);
}
//oder prozedural
function mre($DB,$String) {
return mysqli_real_escape_string($DB,$String);
}
//oder Mysql
function mre($String) {
return mysql_real_escape_string($String);
}
Das kannst du dann so aufrufen. (DB ist hier ein Mysqli-Objekt)
$Result = $DB->query("SELECT * FROM `users` WHERE `user` = '".mre($DB,$_GET['username'])."' LIMIT 1");