你好

我想通过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列的类型为date。

谢谢
问候

最佳答案

How can I prevent SQL injection in PHP?
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 documentation

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

关于php - 如何在MySQL中显示日期特定的数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19829597/

10-13 06:52