如何在mysql,php中使用变量之间的子句?

时间:2017-09-20 09:39:00

标签: php mysql sql post

我正在创建一个按日期搜索功能,该功能应该通过在两个日期之间搜索来返回数据库中的结果。日期以文本格式输入。

search.php

From: <input type="text" name="date" id="datepicker">
To: <input type="text" name="date2" id="datepicker2">   

一般sql查询的格式为

mysql> select name,date from events where category='football'and date 
between '2017-09-01' and '2017-09-27' order by name;

php代码如下:

<?php   
$category = $_GET["category"];
$date1= $_GET["date"];
$date2= $_GET["date2"];

$result="SELECT * FROM events WHERE category='$category' AND date BETWEEN  $date1 AND $date2  ";

?>

我尝试使用$d=strtotime($date1);转换日期,但这不起作用。如何修改查询?

1 个答案:

答案 0 :(得分:0)

不确定您将日期存储在数据库中的格式:

所以我建议你做以下事情:

<?php       

        $category = $_GET["category"];
        $date1= date("Y-m-d", strtotime($_GET["date"])); 
        $date2= date("Y-m-d", strtotime($_GET["date2"])); 

$result="SELECT * FROM `events` WHERE `category`='$category' AND `date` BETWEEN  '".$date1."' AND '".$date2."'  ";

?>

注意:我刚刚更改了两个日期的日期格式,正如您在提供的示例中所看到的,sql查询中的日期格式为(Y-m-d)。

第二件事:为了避免mysql注入,我在查询中添加了反引号(`)。

所以这必须帮助你。