我读过无数文章,但想知道是否有人可以用通俗易懂的方式向我解释其中的区别?我知道它们都可以防止 SQL 注入并且是为了安全。但如果我使用 mysqli 来运行查询,或者 my_sql_query 的老式方式,我使用哪一个真的很重要吗?无论如何,它们不是都是 sql 函数的包装器吗?
为什么下面的代码不起作用?
 $test="hello, 'there";
$db->real_escape_string($test);
$db->query("INSERT INTO users (first_name) VALUES ('$test')");
它们会考虑连接的当前字符集,因此它们需要能够访问连接,因此您必须使用打开连接的库的字符集。
不过,通常应该避免使用它们,而应选择准备好的声明。
为什么下面的代码不起作用?
$test="hello, 'there";
$db->query("INSERT INTO users (first_name) VALUES ('$test')", 
mysqli_real_escape_string($test));
您可能还有其他问题,但是:
$test 后就可以逃脱这应该在构建 SQL 字符串之前进行:
$test = mysqli_real_escape_string($link, $test);
| 归档时间: | 
 | 
| 查看次数: | 10442 次 | 
| 最近记录: |