【发布时间】:2016-06-26 17:50:21
【问题描述】:
我需要转义数组,我正在使用 array_map 和 mysqli_real_escape_string。
我有多个类似的数组
$_post['countries'];
$_post['categories'];
.
.
如何对这些数组执行转义
我就是这样做的
$countries=array_map('mysqli_real_escape_string', $_POST['countries']);
$categories=array_map('mysqli_real_escape_string', $_POST['categories']);
.
.
但它显示错误为Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given in
也在做
$categories=mysqli_real_escape_string($connection, $_POST['categories']);
给出错误
Warning: mysqli_real_escape_string() expects parameter 2 to be string, array given in
请查看并建议一种或其他更好的方法来做到这一点。
谢谢
【问题讨论】:
-
mysqli_real_escape_string 是一个函数,你是如何使用它的。
-
@Anant 我首先尝试了这种方式,但它给出了错误
Warning: mysqli_real_escape_string() expects parameter 2 to be string, array given in -
在 mysqli 中几乎没有 ;) 你需要提供 2 个参数,第一个是连接,第二个是查询等
-
array_map(function($arrayElement) use ($databaseConnection) { return mysqli_real_escape_string($databaseConnection, $arrayElement); }, $_POST['countries']);.... 但是如果你已经在使用 MySQLi,那么切换到使用带有绑定变量的预处理语句,你不需要转义这些 -
@TallboY - 如果您认为这是额外的安全性,那不是......使用绑定变量会为您自动 ;你最终会做这个手动转义的是“双重转义”,这不好