我有这个功能:
protected function runQuery($encodedQuery, $params) {
$query = sprintf($encodedQuery, mysql_real_escape_string($user), mysql_real_escape_string($password));
return mysql_query($query);
}
现在你看到我想在所有给定的参数上使用* mysql_real_escape_string *($ params是一个数组)。第一个参数如下所示: SELECT * FROM users WHERE user ='%s'AND password ='%s'。现在我想用params数组中的元素替换所有%s。这是一个很好的方法吗?
谢谢! :)
答案 0 :(得分:1)
你可以这样做......
protected function runQuery($encodedQuery, $params) {
$query = vsprintf($encodedQuery,
array_map('mysql_real_escape_string', $params));
return mysql_query($query);
}
这会在$params
到mysql_real_escape_string()
中运行每个值。
作为更好的选择,请使用PDO。