我正在编写一个查询,该查询从用户获取一对日期并搜索它是否与我的数据库表中的任何开始和结束列日期重叠。
$from = $_GET['from'];
$to = $_GET['to'];
$sql="select bikeid from bikebookings where date('Y-m-d',strtotime(str_replace('/', '-', $from))) <= end and date('Y-m-d',strtotime(str_replace('/', '-', $to))) >= start";
mysqli_query($link,$sql) or die(mysqli_error($link));
我收到如下错误:
您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以便在'strtotime(str_replace('/',' - ',20/03/2018)附近使用正确的语法)&lt; = end和date('Ym-d' ,strtotime('第1行
答案 0 :(得分:0)
你应该使用mysql str_to_date函数并避免sql注入。你应该使用绑定参数。例如:
$stmt = $mysqli->prepare("select bikeid from bikebookings
where str_to_date( ?, '%Y-%m-%d') <= end and str_to_date( ?, '%Y-%m-%d') >= start");
$stmt->bind_param('ss',$from, $to);
$stmt->execute();