我把数据插入数据库,数据库插入不进去数据,代码也没报错。
有人能帮忙解决吗?
参考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>
......
如果对您有帮助,请给与采纳,谢谢。
你的sql拼接有问题:
$sql = "insert into order (username,act,material,service,tel,address1,address2,note) values ('" + $username + "', '" + $act + "','" + $material + "','" + $service + "','" + $tel + "','" + $address1 + "','" + $address2 + "','" + $note + "')";
还有就是插入语句的执行条件是当mysqli_query函数返回值为false时,下单成功。但是应该是当mysqli_query函数返回值为true时,下单成功,应改为:
if (mysqli_query($con, $sql)) {
echo "<script>alert('下单成功');window.location.href='../order.html'</script>";
} else {
echo "<script>alert('下单失败');window.location.href='../order.html'</script>";
}
你好,option没有数据是因为你option里面value值没有填写,把value写上试试看
这个咋解决啊,我的option标签的数据插不进去。
当无法将数据插入数据库时,可能会出现多种原因,以下是一些可能的解决方案:
1.检查数据库连接
确保您的代码已经成功连接到数据库。您可以尝试在代码中添加一个数据库连接测试,以确保连接正常运行。
2.检查数据库表和字段
确保您正在尝试将数据插入正确的表和字段中。可以通过查询数据库的表结构来检查表和字段的名称。
3.检查数据格式
确保您正在尝试将数据插入数据库的格式与表中的格式匹配。例如,如果您尝试将字符串插入数字字段,则可能会导致错误。
4.检查数据库权限
确保您的数据库用户具有正确的权限,包括对所需表的插入权限。
5.打印 SQL 语句并手动执行
在代码中打印生成的 SQL 语句,检查是否正确。然后尝试手动在数据库中运行此 SQL 语句,以查看是否存在其他错误或警告消息。
希望这些解决方案能够帮助您解决问题!如果问题仍然存在,请提供更多详细信息,以便更好地帮助您解决问题。