我正在学习PHP的书说,为了防止人们使用引号之类的东西来改变查询,你应该使用real_escape_string函数。然后作者接着说,在一些旧的系统上,启用了魔术引号,使用real_escape_string可能最终会双重转义一些字符,所以他创建了这个函数:
<?php
function mysql_fix_string($conn, $string) {
if (get_magic_quotes_gpc()) $string = stripslashes($string);
return $conn->real_escape_string($string);
}
?>
将它转换为mysqli类的扩展类中的方法是否可以? (除了我想尽可能少地传递参数之外,我没有任何真正的理由。)
如果是这样,这是正确的方法吗?
class mysqli_extended extends mysqli {
public function fix_string($string) {
if(get_magic_quotes_gpc()) {
$string = stripslashes($string);
}
return $this->real_escape_string($string);
}
}
这是一种静态方法更有意义的情况吗?如果是这样,它怎么能被重写为静态方法,如果没有,那么为什么呢?
<小时/> 由于我刚问过一百万个问题,我将在这里总结一下: