Как сделать этот запрос в подготовленном утверждении? - PullRequest
0 голосов
/ 02 февраля 2012

Правильно, так что я все еще думаю о готовых заявлениях, и каждый раз, когда я думаю, да, я получаю его, приходит новый запрос, и я думаю, Хмммм, я бы это настроил?

Итак, у нас есть запрос, который извлекает записи из базы данных на основе даты и упорядочивает их по указанной дате. Записи, которые он находит, основаны на значении года и месяца, и запрос выглядит так:

$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 Ответ

2 голосов
/ 02 февраля 2012

Одной из идей будет фильтрация по годам и месяцам в отдельных частях предложения 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);
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...