0

我有这个功能:

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 。有什么好方法吗?

谢谢!:)

4

1 回答 1

1

你可以这样做...

protected function runQuery($encodedQuery, $params) {
    $query = vsprintf($encodedQuery, 
                      array_map('mysql_real_escape_string', $params));
    return mysql_query($query);
}

$params这将在through中运行每个值mysql_real_escape_string()

作为更好的选择,使用PDO

于 2012-04-16T12:38:41.013 回答