【发布时间】:2016-04-15 09:23:22
【问题描述】:
当您可以订购汽车时,我有一个订购页面。我有 2 个功能,1 个订购 1 个检查。
我的订单功能:
function reserveer($resvan,$restot,$autoid){
$con = new Core();
$con->connect();
$sql = 'INSERT INTO reservering (resvan, restot,autoid) VALUES (?,?,?)';
if ($stmt = $con->myconn->prepare($sql))
{
$stmt->bind_param('ssi', $resvan, $restot,$autoid);
$stmt->execute();
$stmt->close();
}
else{
die("errormessage: " . $con->myconn->error);
}
}
我的检查功能:
function check($resvan, $restot,$autoid){
$con = new Core();
$con->connect();
$errmsg = array();
$sqlres = 'SELECT * FROM reservering WHERE resvan >= ? AND restot <= ? AND autoid=?';
if($stmt = $con->myconn->prepare($sqlres)){
$stmt->bind_param('ssi', $resvan, $restot,$autoid);
$stmt->execute();
$stmt->store_result();
}
if ($stmt->fetch()){
$errmsg[] = "already exists!";
return $errmsg;
}
}
但我的代码有缺陷。当有人从 2001-01-01 到 2001-01-15 订购时,它会被正确插入。当有人从 2001-01-02 到 2001-01-14 订购时,它也会被插入。我认为这会奏效。我也尝试过 sql BETWEEN 但这也不起作用。
所以我的问题是,我怎样才能对此进行正确检查?我没有错误。
我的餐桌设置:
【问题讨论】:
-
您在数据库表中的日期使用什么数据类型? (请不要说您使用的是 varchar)
-
不,我正在使用日期@MarkBaker