PHP - 用数组元素替换字符串?

时间:2012-04-16 12:36:33

标签: php-5.3 str-replace printf

我有这个功能:

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。这是一个很好的方法吗?

谢谢! :)

1 个答案:

答案 0 :(得分:1)

你可以这样做......

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

这会在$paramsmysql_real_escape_string()中运行每个值。

作为更好的选择,请使用PDO