我把数据插入数据库,数据库插入不进去数据,代码也没报错。
有人能帮忙解决吗?
6条回答 默认 最新
- 「已注销」 2023-02-21 14:01关注
参考GPT和自己的思路,这段 PHP 代码的问题可能在于 SQL 插入语句的语法错误或者变量的值没有正确赋值。以下是一个可能修正后的代码:
<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "database"; // 创建连接 $con = new mysqli($servername, $username, $password, $dbname); // 检查连接是否成功 if ($con->connect_error) { die("连接失败: " . $con->connect_error); } // 检查必要的表单字段是否填写 if (empty($_POST['username']) || empty($_POST['act'])) { die("请将信息填写完整!"); } else { // 设置字符集为 UTF-8 mysqli_set_charset($con, 'UTF8'); // 获取表单字段的值 $username = $_POST['username']; $act = $_POST['act']; $material = $_POST['material']; $service = $_POST['service']; $tel = $_POST['tel']; $address1 = $_POST['address1']; $address2 = $_POST['address2']; $note = $_POST['note']; // 构建 SQL 插入语句 $sql = "INSERT INTO `order` (`username`, `act`, `material`, `service`, `tel`, `address1`, `address2`, `note`) VALUES ('$username', '$act', '$material', '$service', '$tel', '$address1', '$address2', '$note')"; // 执行 SQL 插入语句 if ($con->query($sql) === TRUE) { echo "数据插入成功"; } else { echo "Error: " . $sql . "<br>" . $con->error; } } // 关闭连接 $con->close(); ?>
这段代码使用了 mysqli 的面向对象方式,构建了 SQL 插入语句,并将表单字段的值正确赋值到变量中。在执行 SQL 插入语句时,如果成功,将输出“数据插入成功”,否则将输出错误信息。最后,关闭了连接。
可能是因为数据库中的关键字order被用作了表名,需要将表名order用反引号括起来,修改$sql的语句为:
$sql = "insert into `order` (username, act, material, service, tel, address1, address2, note) values ('$username', '$act', '$material', '$service', '$tel', '$address1', '$address2', '$note')";
另外,可以将if语句中的mysqli_query的返回值取反,因为当插入成功时mysqli_query返回true,否则返回false,所以需要将代码修改为:
if (!mysqli_query($con, $sql)) { echo "<script>alert('下单失败');window.location.href='../order.html'</script>"; } else { echo "<script>alert('下单成功');window.location.href='../order.html'</script>"; }
<?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "mydb"; $con = new mysqli($servername, $username, $password, $dbname); if ($con->connect_error) { die("连接失败: " . $con->connect_error); } if (empty($_POST['username']) || empty($_POST['act'])) { die("请将信息填写完整!"); } else { mysqli_set_charset($con, 'UTF8'); $username = $_POST['username']; $act = $_POST['act']; $material = $_POST['material']; $service = $_POST['service']; $tel = $_POST['tel']; $address1 = $_POST['address1']; $address2 = $_POST['address2']; $note = $_POST['note']; $sql = "insert into `order` (username, act, material, service, tel, address1, address2, note) values ('$username', '$act', '$material', '$service', '$tel', '$address1', '$address2', '$note')"; if (!mysqli_query($con, $sql)) { echo "<script>alert('下单失败');window.location.href='../order.html'</script>"; } else { echo "<script>alert('下单成功');window.location.href='../order.html'</script>"; } } ?> <form action="./php/order.php" method="post" class="form-container"> <h3 class="t1">请填写你要下单的信息(一双鞋子下一个订单)</h3> <span class="t2">姓名:</span> <input type="text" name="username" class=""> <br> <span class="t2">账号:</span> <input type="text" name="act" class=""> <br> <span class="t2">鞋子的系列:</span> <select name="material" id="" class=""> <option value=""></option> <option value="">正面皮</option> <option value="">纺面皮</option> <option value="">绒面皮</option> <option value="">混合皮</option> <option value="">奢侈皮</option> <option value="">特殊皮</option> </select> <br> <span class="t2">附加服务:</span> <select name="service" class=""> <option value=""></option> ......
如果对您有帮助,请给与采纳,谢谢。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 2020长安杯与连接网探
- ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
- ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
- ¥16 mybatis的代理对象无法通过@Autowired装填
- ¥15 可见光定位matlab仿真
- ¥15 arduino 四自由度机械臂
- ¥15 wordpress 产品图片 GIF 没法显示
- ¥15 求三国群英传pl国战时间的修改方法
- ¥15 matlab代码代写,需写出详细代码,代价私
- ¥15 ROS系统搭建请教(跨境电商用途)