我有一个连接来自 POST 变量的查询的函数,我使用 foreach 执行此操作:
$id = $_POST['empId'];
$query = "UPDATE userInfo SET ";
foreach ($_POST as $key => $value) {
$query .= "$key = '$value', ";
}
$query .= " WHERE id = '$id'";
我怎么知道最后一次迭代是什么时候,以便删除最后的逗号,从而能够正确构建查询?
我有一个连接来自 POST 变量的查询的函数,我使用 foreach 执行此操作:
$id = $_POST['empId'];
$query = "UPDATE userInfo SET ";
foreach ($_POST as $key => $value) {
$query .= "$key = '$value', ";
}
$query .= " WHERE id = '$id'";
我怎么知道最后一次迭代是什么时候,以便删除最后的逗号,从而能够正确构建查询?
您可以使用该函数实现您想要的
implode
,而不是连接到字符串,将元素添加到数组中,最后执行implode
作为一个单独的说明,您似乎受到了SQL 注入攻击,在这篇文章中,我们广泛讨论了如何避免它:如何避免 PHP 中的 SQL 注入?
您可以使用 php end()数组函数。正如您在链接中看到的那样,该函数将指针设置为数组的最后一个元素。如果您使用条件对其进行评估,则可以以相当干净和有效的方式实现您的建议;
很简单,你只需要查询数组的键,然后检查你是否真的在最后一个
2020 年更新。PHP 7.3或更高版本引入了这些功能
array_key_first()
获取给定数组的第一个键,而不影响内部数组指针。
array_key_last()
获取给定数组的最后一个键,而不影响内部数组指针。
给定一个名为的数组,获取最后一次迭代的示例
$array
: