0

您好,我尝试使用以下代码从日期之间的 mysql 中选择日期:

if (empty($_GET['date-range1'])) { 
    $sql=mysql_query("SELECT * FROM sohy_raports ORDER BY ".$_GET['sort']." ".$_GET['ad']."");

} else {
$sql=mysql_query("SELECT * FROM sohy_raports WHERE date BETWEEN ".$_GET['date-range1']." AND ".$_GET['date-range2']." ORDER BY ".$_GET['sort']." ".$_GET['ad']."");
}

但是使用此代码,我无法在日期之间进行选择,只能在 id 之间进行选择。它可能来自日期格式错误 Y-mm-dd ?

谢谢

4

1 回答 1

2

代替

$sql=mysql_query("SELECT * FROM sohy_raports WHERE date BETWEEN ".$_GET['date-range1']." AND ".$_GET['date-range2']." ORDER BY ".$_GET['sort']." ".$_GET['ad']."");

$query = "SELECT * FROM sohy_raports WHERE date BETWEEN ".$_GET['date-range1']." AND ".$_GET['date-range2']." ORDER BY ".$_GET['sort']." ".$_GET['ad'];
echo $query;
$sql=mysql_query($query);

这将打印出您发送到数据库的查询,并清除很多可能出错的地方,以及您使用的确切日期格式。

另一方面,但同样重要的是: - 不要再使用 mysql_* 函数,它们已被弃用且不安全。改用 mysqli_* 或 PDO。- 永远不要只在查询中使用 GET 变量(或 POST),请确保首先清理它们以防止 SQL 注入。

于 2013-05-27T08:22:14.150 回答