我使用以下代码从另一个用 php 编写的页面中删除复选框数组,但我一次只能删除 1 个条目
<?php
$checked = "";
$status = (isset($_REQUEST['status'])); //Checks if any checkboxes have been selected
if ($status == 'checked') {
$status = 1;
$checked = 'checked="checked"';
$value = $_POST['status']; //Uses the value of the checkbox
foreach ($value as $val) { //Loops through all of the checkboxes that have been selected
$sql = "DELETE FROM users WHERE ID='$val'"; //Mysql code to delete from the databases where items have been selected
if ($conn->query($sql) === TRUE) { //If a value has been deleted
echo "Record deleted successfully: ";
} else {
echo "Error deleting record: " . $conn->error; //Prints error if value hasnt deleted
}
$conn->close();//Closes sql connection
echo $val; //Echos values selected
echo '</br>';
}
} else {
$status = 0;
}
echo <<<END
END;
?>
最佳答案
首先,您直接将发布的数据插入到 SQL 查询中 — 甚至是 DELETE
查询!恶意用户可以轻松利用此代码删除数据库的全部内容。
ALWAYS 转义 SQL 语句中使用的用户提交的值。
但对于您的直接问题:您在执行第一个 DELETE
后立即调用 $conn->close()
。当您尝试执行第二个操作时,您的服务器连接已经关闭。在循环结束之前不要调用 $conn->close()
。
关于php - 从复选框php和mysql中删除超过1个条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36113314/