0

你好,

我想通过 MySQL 查询显示特定日期的数据,我正在使用下面的查询;

SELECT SUM(qa_effort) 
FROM tbl_uat 
WHERE product='DAS' 
    AND uat_start_date >= '$date1'

上面的查询不仅为>还为<显示 uat_start_date 的数据,这可能是什么原因?

PHP代码:

<?php       
$date1 = $_POST["date3"];    
$date2 = $_POST["date4"];

if (is_null($date2) || $date2 === '' ){
$cmsc= mysql_query("SELECT SUM(qa_effort) 
FROM tbl_uat 
WHERE product='DAS' 
   AND uat_start_date >= '$date1'");

while ($cresult = mysql_fetch_array ($cmsc))
$arrda2[0] = $cresult[0];
echo $arrda2[0];
}
?>

在 tbl_uat 中,列 uat_start_date 类型是日期。

感谢和问候

4

1 回答 1

0
  1. 如何防止 PHP 中的 SQL 注入?
  2. mysql_*已弃用。使用mysqli_*PDO代替。

在准备好的语句示例中,它将如下所示:

$date1 = $_POST["date3"];    
$date2 = $_POST["date4"];

if (is_null($date2) || $date2 === '' ) {
    $q = $mysqli->prepare('SELECT SUM(qa_effort) 
        FROM tbl_uat 
        WHERE product="DAS"
        AND uat_start_date >= ?
    ');

    $q->bind_param('s', $date1);
    $q->execute();

    $q->bind_result($sum);

    while ($q->fetch()) {
       echo $sum;
    }
}

mysqli文件

当然,例如,您应该验证$date1日期是否格式正确。Y-m-d

于 2013-11-07T07:22:33.193 回答