php - 从复选框php和mysql中删除超过1个条目

标签 php mysql

我使用以下代码从另一个用 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/

相关文章:

javascript - Node.JS 与 req.session.variable 异步?

mysql - SQL - 获取ID的最新记录并保留空列

mysql - 从 MySQL 中的其他数据库链接表

php - Mysql动态值作为别名

php - 用一个换行符替换多个换行符

php - 获取和编辑 GET 变量以创建超链接的方法

php - 图片的替代文字没有出现

PHP MySQL - 在循环中间添加一行

php - 如何将Google QR Code生成器结果输出到数据库?

php - 如何比较两个输入变量与mysql存储值(PHP)?