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


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

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

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设置了我的数据库,并在我的机器上本地运行它。数据库中的每个字段都使用相同的数据类型。

我的问题是,当我运行代码时,它只存储前两个文本字段。时间和说明以空白形式提交到表中。

您的表单应该如下所示。我在提交按钮中添加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;
}