首页 > 解决方案 > 在 mysql DB 中插入复选框值

问题描述

我正在学习 PHP,将复选框值插入我的数据库时遇到问题,请告诉我出了什么问题。感谢你

如何修复此代码以存储所有检查值?

<html>
<body>
    <form action="submit.php" method="post" enctype="multipart/form-data">
        <input type="checkbox" name="ch[]" id="ch" value="JAVA">JAVA <br>
        <input type="checkbox" name="ch[]" id="ch" value="C++">C++ <br>
        <input type="checkbox" name="ch[]" id="ch" value="JS">JS <br>
        <input type="checkbox" name="ch[]" id="ch" value="C">C <br>
        <input type="button" value="submit" name="submit">
    </form>
    <?php
try {
            $bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
        } catch (Exception $th) {
            die('Error'.$th->getMessage());
        }
        if(isset($_POST["submit"])){
            $check =implode(',',$_POST['ch']);
            $qry = $bdd->prepare("INSERT INTO test inputC VALUES ('$check')");    
            $res=mysql_query($qry);
            if($res){
                echo "insert success";
            }else{
                echo "error in inserting";
                }
            }
        ?>
</body>
</html>

标签: phphtmlmysql

解决方案


您的表单提交按钮配置不正确,应该是<button type="submit" name="submit">Submit</button>. 此外,SQL 查询没有被执行,因为它不是用PDO.

这是一个可能的解决方案:

...
<body>
    <form method="post" action="submit.php" enctype="multipart/form-data">
        <input type="checkbox" name="ch[]" id="ch" value="JAVA">JAVA <br>
        <input type="checkbox" name="ch[]" id="ch" value="C++">C++ <br>
        <input type="checkbox" name="ch[]" id="ch" value="JS">JS <br>
        <input type="checkbox" name="ch[]" id="ch" value="C">C <br>
        <button type="submit" name="submit">Submit</button>
    </form>
    <?php
    try {
        $bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
        $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    } catch (Exception $th) {
        die('Error'.$th->getMessage());
    }

    if(isset($_POST["submit"])) {
        try {
            $check = implode(',',$_POST['ch']);
            $stmt = $bdd->prepare("INSERT INTO test (inputC) VALUES (?)");  

            $stmt->execute([$check]);

            if ($bdd->lastInsertId() != -1) {
                echo "insert success";
            } else {
                echo "error in inserting";
            }
        } catch(PDOException $e) {
            die("Error: ".$e->getMessage());
        }
    }
}
?>
</body>
...

推荐阅读