我有两个这样的功能:
function mysql_safe_query($format) {
$args = array_slice(func_get_args(),1);
$args = array_map('mysql_safe_string',$args);
$query = vsprintf($format,$args);
$result = mysql_query($query);
if($result === false) echo '<div class="mysql-error">',mysql_error(),'<br/>',$query,'</div>';
return $result;
}
function mysql_row_exists() {
$result = mysql_safe_query(func_get_args());
return mysql_num_rows($result) > 0;
}
Run Code Online (Sandbox Code Playgroud)
问题是第二个函数不起作用,因为它将args作为一个数组传递给第一个函数,当它将它们作为不同的参数时.有没有办法解决这个问题,最好不要修改mysql_safe_query?
Joh*_*ala 24
如何使用:
$args = func_get_args();
call_user_func_array('mysql_safe_query', $args);
Run Code Online (Sandbox Code Playgroud)
mpe*_*pen 11
注意在PHP 5.6中,您现在可以执行此操作:
function mysql_row_exists(...$args) {
$result = mysql_safe_query(...$args);
return mysql_num_rows($result) > 0;
}
Run Code Online (Sandbox Code Playgroud)
此外,对于未来的读者,不推荐使用mysql_* - 不要使用这些功能.