我把数据插入数据库,数据库插入不进去数据,代码也没报错。
有人能帮忙解决吗?
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 如何让企业微信机器人实现消息汇总整合
- ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
- ¥15 如何用Python爬取各高校教师公开的教育和工作经历
- ¥15 TLE9879QXA40 电机驱动
- ¥20 对于工程问题的非线性数学模型进行线性化
- ¥15 Mirare PLUS 进行密钥认证?(详解)
- ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
- ¥20 想用ollama做一个自己的AI数据库
- ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
- ¥15 请问怎么才能复现这样的图呀