如何将此查询更改为准备好的语句?

时间:2012-02-02 11:18:11

标签: php mysql prepared-statement

是的,所以我仍然准备好了准备好的陈述,每次我想,是的,我已经得到它,一个新的问题出现了,我想,嗯,我会设置它吗?

所以我们去,我有一个查询,根据日期从数据库中提取记录,并按照所述日期对它们进行排序。它找到的记录基于年份和月份值,查询如下所示:

$getresults = mysql_query(" SELECT * FROM `results` WHERE `date` LIKE '2012-$monthid%' ORDER BY date ");

我已经有了从我的数据库中获取用户记录的基本预备声明:

$query = "SELECT *
            FROM results
            WHERE date = ?
            LIMIT 1";

    if($stmt = $this->conn->prepare($query)) 
    {
        $stmt->bind_param('s', $date);
        $stmt->execute();

        if($stmt->fetch()) 
        {
            $stmt->close();
            return true;
        }
        else
            return false;
    }

我如何更改它以使其更像第一个查询?

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

一个想法是在WHERE子句的不同部分按年和月过滤:

$query = "SELECT * FROM results WHERE YEAR(date) = 2012 AND MONTH(date) = ? ORDER BY date";

if ($stmt = $this->conn->prepare($query)) {
    $stmt->bind_param('i', $monthid);
    ...
}
相关问题