【发布时间】:2019-11-29 22:39:27
【问题描述】:
我有一个 sql 表“flights”,其中包含所有航班的所有详细信息:飞机登记、到达日期、出发日期等等...... 现在,当我想创建一个新航班时,我想检查两个给定日期之间是否已经存在具有相同注册的航班。 EG:有一个名为 IFLY 的航班于 2019 年 7 月 22 日抵达并于 2019 年 7 月 25 日起飞,现在如果我尝试创建另一个具有相同注册但于 23/7/2019 抵达并于 2019 年 7 月 24 日起飞的航班,我会喜欢在数据库中检查在这些日期期间另一个具有相同注册的航班已经在数据库中并提醒用户。
我尝试过这样的事情: 通过 jquery/ajax 在 DB 上调用请求的 html 表单
$regist = $_POST['regCreate'];
$arrivalDate = $_POST['adof'];
$departureDate =$_POST['ddof'];
$sql = "SELECT reg FROM flights WHERE reg = '$regist' AND (adof or ddof)
>= '$arrivalDate' AND (adof or ddof) <= '$departureDate' ";//
$data = mysqli_query($conn, $sql);
if (mysqli_num_rows($data) > 0) {
echo 'exists';
}
此代码不起作用,因为如果我创建一个位于已创建的两个日期之间的新航班不会给我例外结果。
【问题讨论】:
-
您的架构是什么样的?你能举一个结果的例子吗?
-
不要在 SQL 语句中直接使用
$_POST值,可能会导致 SQL 注入。转义它们或使用准备好的语句。