【发布时间】:2011-07-17 21:13:27
【问题描述】:
我有一个动态生成的表单。最终用户将能够向数据库提交员工详细信息。所以数组 $fname 将包含所有名字, $lname 所有姓氏等。然后将数组插入 MySQL,如下所示:
$query = "INSERT INTO workers (date_added, department,fname, lname, rank)
VALUES ";
$fname = count(fname);
for($i=0; $i<$employee_count; $i++) {
$query .= "(NOW(),'$department','{$fname[$i]}','{$lname[$i]}','{$rank[$i]}'),\n";
}
这工作非常好,直到我们有像单引号这样的危险字符,例如 MC'Mahon,这会使查询失败。我不能使用许多普通函数,例如 mysqli_real_escape_string(),因为这是一个数组。 有没有办法清理数组,即转义数组中的任何危险字符,以便我在将每个数组推入它们之前对其进行清理,以便循环将每个数组拆分为字符串,然后输入 MySQL?
【问题讨论】:
-
您应该考虑使用PDO library。
-
您没有将数组插入数据库,而是从数组中插入字符串。您可以而且应该对它们进行消毒。
-
我的意思是“你是”,当然……两次。