2012-04-16 65 views
0

我有这样的功能:PHP - 用数组元素替换字符串?

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给出($ params为数组)。第一个参数如下所示:SELECT * FROM users WHERE user ='%s'AND password ='%s'。现在我想用params数组中的元素替换所有的%s。最好的方法是做什么?

谢谢! :)

回答

1

你可以做到这一点是这样的...

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

这将通过mysql_real_escape_string()运行$params每个值。

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