You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

cPanel phpMyAdmin关联PHP代码无法写入RESERVATIONS表问题求助

问题描述

我在cPanel环境下使用phpMyAdmin管理数据库,运行PHP代码时遇到数据无法写入RESERVATIONS表的问题。经过数小时排查发现:手动在phpMyAdmin中执行查询语句可以成功写入,但通过PHP文件运行就无法正常写入数据。
RESERVATIONS表的列信息可参考对应截图。

相关代码
<?php
    require 'dbconfig/config.php';
?>
<!DOCTYPE html>
<html>
<head>
<title>Registration Page</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body style="background-color:#bdc3c7">
    <div id="main-wrapper">
        <center>
            <h2>Registration Form</h2>
        <form class="GuestForm">
    <label for="fname">First Name:</label>
    <input type="text" name="fname" id="fname" required>
    <hr>
    <label for="lname">Last Name:</label>
    <input type="text" name="lname" id="lname" required>
    <hr>
    <label for="phoneNum">GuestPhone:</label>
    <input type="text" name="phoneNum" id="phoneNum" required>
    <hr>
    <label for="emailaddr">GuestEmail:</label>
    <input type="text" name="emailaddr" id="emailaddr" required>
    <hr>
    <label for="dateNtime">DateTime:</label>
    <input type="text" name="dateNtime" id="dateNtime" required>
    <hr>
    <label for="partySize">Party Size:</label>
    <input type="number" name="partySize" id="partySize" min="0" max="10" required>
        <input name="submit_btn" type="submit" id="signup_btn" value="Create Reservation"/><br>
</form>
        <?php
            if(isset($_POST['submit_btn']))
            {
                echo '<script type="text/javascript"> alert("Submit button clicked") </script>';
                $fname = $_POST['fname'];
                $lname = $_POST['lname'];
                $phoneNum = $_POST['phoneNum'];
                $emailaddr = $_POST['emailaddr'];
                $dateNtime = $_POST['dateNtime'];
                $partySize = $_POST['partySize'];
                
                    $query = "SELECT dateNtime from RESERVATIONS WHERE dateNtime = '$dateNtime'";
                    $query_run = mysqli_query($con,$query);
                    
                    if(mysqli_num_rows($query_run)>0) 
                    {
                        echo '<script type="text/javascript"> alert("There is already a reservation for that particular date and time") </script>';
                    }
                    else{
                        $result = mysqli_query($conn, 'SELECT SUM(table_size) AS value_sum FROM DININGTABLES WHERE occupied = 0'); 
                        $row = mysqli_fetch_assoc($result); 
                        $sum = $row['value_sum'];
                        echo $sum;
                        
                        $query = "INSERT into RESERVATIONS(reservation_id, registered_user, username, fname,lname,phoneNum, emailaddr, dateNtime, partySize) values('NULL', 'NULL', 'NULL','$fname','$lname', '$phoneNum', '$emailaddr', '$dateNtime', '$partySize')";
                        $query_run = mysqli_query($con,$query);
                        
                        if($query_run)
                        {
                            echo '<script type="text/javascript"> alert("Reservation created but not really") </script>';
                        }
                        else
                        {
                            echo '<script type="text/javascript"> alert("Error!") </script>';
                        }
            }
            }
        ?>
        </center>
    </div>
</body>
</html>

注:本项目仅为学校作业,不会公开部署使用,因此暂不需要考虑安全相关问题。

解决方案
  • 表单提交方式错误:form标签未指定method属性时默认使用GET方式提交,后端代码使用$_POST接收参数,永远无法获取到提交的表单数据,插入逻辑根本不会执行。
    修复方法:将form标签修改为<form class="GuestForm" method="post">
  • 数据库连接变量拼写错误:查询DININGTABLES表时使用的连接变量是$conn,其余所有数据库操作使用的是$con,变量名不一致会导致查询失败,后续插入逻辑也无法正常执行。
    修复方法:统一数据库连接变量名,和dbconfig/config.php中定义的连接变量保持一致即可。
  • 插入语句主键赋值错误:如果reservation_id是自增的INT类型主键,传入带单引号的字符串'NULL'会触发字段类型不匹配错误,无法写入数据。
    修复方法:修改INSERT语句,要么直接省略reservation_id字段和对应的值,让数据库自动生成自增ID;要么把值的单引号去掉,直接写NULL。

内容的提问来源于stack exchange,提问作者Mozfet99

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 11:06:01