为什么我的代码不会存储两个以上的数据字段?

Why will my code not store more than two data fields?

我目前正在为一个暑假项目学习 PHP 和 mySQL。我正在尝试创建一个 HTML 表单,它将 4 个文本字段存储到 mySQL table 中。这是我正在使用的代码:

HTML表格

<form action="postEvent.php" method="post">
    Name:
    <input type="text" name="Name" />
    Date: 
    <input type="text" name="Date" />
    Time:
    <input type="text" name"Time"  />
    Description: 
    <input type="text" name"Description" />
    <input type="submit" value="Submit">
</form>

PHP 动作

// Create connection
$link = mysqli_connect('localhost', 'root', '******', 'myDB');

// Check connection
if ($link->connect_error) {
    die("Connection failed: " . $link->connect_error);
}

$iName = mysqli_real_escape_string($link, $_POST['Name']);
$iDate = mysqli_real_escape_string($link, $_POST['Date']);
$iTime = mysqli_real_escape_string($link, $_POST['Time']);
$iDescription = mysqli_real_escape_string($link, $_POST['Description']);
$sql = "INSERT INTO events "
    . "(Name,Date,Time,Description)"
    . " VALUES ('$iName','$iDate','$iTime','$iDescription')";

if (mysqli_query($link, $sql)) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $link->error;
}

$link->close();

我使用 Microsoft WebMatrix 设置了我的数据库,并且我在我的机器上 运行 在本地连接它。数据库中的每个字段使用相同的数据类型。

我的问题是,当我 运行 代码时,它只存储前两个文本字段。时间和描述作为空白提交给 table。

您的表单应如下所示。我在提交按钮中添加name="submit"

<form action="postEvent.php" method="post">
    Name:
    <input type="text" name="Name" />
    Date: 
    <input type="text" name="Date" />
    Time:
    <input type="text" name="Time"  />
    Description: 
    <input type="text" name="Description" />
    <input type="submit" name="submit" value="Submit">
</form>

这里是 Postevent.php:

if(isset($_POST['submit'])){
       $mysqli = new mysqli("localhost", "root", "my_password", "myDB");
       $name = isset($_POST['Name'])? $_POST['Name']:'';
       $date= isset($_POST['Date'])? $_POST['Date']:'';
       $time= isset($_POST['Time'])? $_POST['Time']:'';
       $des= isset($_POST['Description'])? $_POST['Description']:'';    

      if(empty($name)){
        $error = 'Enter Name';
      }elseif(empty($date)){
        $error = 'Enter date';
      }elseif(empty($time)){
        $error ='Enter time';
      }elseif(empty($des)){
        $error = 'Enter description';
      }else{
        $query = "INSERT INTO `events` (`Name`, `Date`, `Time`, `Description`) 
                  VALUES (?,?,?,?)";
        $stmt = $mysqli->prepare($query);
        $stmt->bind_param("ssss", $name, $date, $time,$des);
        $stmt->execute();
        $stmt->close();
      }
    }

并且可以检查是否有错误:

if(!empty($error)){
    echo $error;
}