今年夏天,我正在为一个项目学习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;
}