m0_56723272 2023-02-21 13:54 采纳率: 57.1%
浏览 102
已结题

有人会php跟数据库的吗

我把数据插入数据库,数据库插入不进去数据,代码也没报错。
有人能帮忙解决吗?

img

img

img

img

img

  • 写回答

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人已打赏
查看更多回答(5条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月21日
  • 已采纳回答 2月21日
  • 修改了问题 2月21日
  • 修改了问题 2月21日
  • 展开全部

悬赏问题

  • ¥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系统搭建请教(跨境电商用途)