gpt4 book ai didi

php - 清理阵列

转载 作者:行者123 更新时间:2023-11-29 01:07:32 27 4
gpt4 key购买 nike

我有一个动态生成的表单。最终用户将能够向数据库提交员工详细信息。所以数组 $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(),因为这是一个数组。有没有办法清理数组,即转义数组内的任何危险字符,以便我在将每个数组插入它们之前清理每个数组 for 循环将每个数组拆分为字符串,然后输入到 MySQL 中?

最佳答案

你可以使用 array_map在你的 for 循环之前。该函数对数组的每个值应用回调。在这种情况下,回调将是 mysqli_real_escape_string

$fname = array_map('mysqli_real_escape_string', $fname);
$lname = array_map('mysqli_real_escape_string', $lname);
$rank = array_map('mysqli_real_escape_string', $rank);

根据以下评论更新:

要在过程模式下使用mysqli_real_escape_string,您需要传递“链接”,因此您需要创建一个自定义函数:

function array_map_callback($a)
{
global $dbc;

return mysqli_real_escape_string($dbc, $a);
}

$fname = array_map('array_map_callback', $fname);
$lname = array_map('array_map_callback', $lname);
$rank = array_map('array_map_callback', $rank);

关于php - 清理阵列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6726800/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com