php - 在 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>
解决方案
您的表单提交按钮配置不正确,应该是<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>
...
推荐阅读
- sql - 根据表 B 中另一个 column2 的唯一值从表 A 中选择 column1
- excel - 使用 v 查找和 LEN 复制值
- c++ - 发现显示链表的错误
- amazon-web-services - 在 Java 中创建新的 DynamoDB 表时使用 DynamoDBVersionAttribute
- drupal-8 - 我可以根据视图的结果生成表单吗?
- excel - 循环列表并生成报告
- pyspark - Databricks dbutils.fs.ls 显示文件。但是,读取它们会引发 IO 错误
- powershell - SCCM - 使用 PowerShell 更改现有的部署期限
- c++ - 修改程序入口点时未调用全局变量的构造函数
- go - 在 Golang 中刷新标准输入缓冲区?