我正在为我们的学校项目预订。我想确保console.log(this.myInput.nativeElement.errors);
拒绝在数据库表mysqli
中插入reservationDate
,如果值已经存在于数据库中。问题是即使数据库中已经存在数据,也会插入数据。该代码似乎不起作用,所以我想知道你们是否可以检查我的代码以查看我做错了什么?
"tbl_funeral"
答案 0 :(得分:0)
一种可行的解决方法是在数据库级别进行处理,并在ReservationDate
列上添加唯一约束:
ALTER TABLE tbl_funeral ADD CONSTRAINT date_cnstr UNIQUE (ReservationDate);
有了此约束,任何试图使用表中已经出现的保留日期的插入都将在数据库本身上。
您可以在PHP代码中使用类似于以下内容的模式:
try {
$conn = new mysqli("localhost", "root", "", "parishdb");
if(isset($_POST["btnSavess"])) {
$conn->query("INSERT IGNORE INTO tbl_funeral(FirstName, LastName, DateOfBirth, DateOfDeath, Address, ReservationDate, SelectTime) VALUES('$_POST[firstName]', '$_POST[lastName]', '$_POST[dob]', '$_POST[dod]', '$_POST[address]', '$_POST[reservationDate]','$_POST[selectTime]')");
$result = mysqli_query($conn, $query);
if ($query === FALSE) {
throw new Exception($this->mysqli->error);
}
mysqli_close($conn);
}
} catch(Exception $e) {
// ...
}
请注意,我看到您尚未使用准备好的语句。您应该考虑使用它们以避免SQL注入,并使代码更具可读性。