У меня есть запрос, как это:Mysql запрос времени смешивания даты и позиции
SELECT message_text
FROM messages
WHERE message_date >= '$connection_time'
достаточно просто. Это позволяет мне получать сообщения, отправляемые с момента подключения.
Но мне также нужно получить последние 15 сообщений, отправленных до этого времени соединения. (Лучше всего было бы сделать все это с помощью одного запроса).
Как бы я это сделал?
PS: Я думал о получении идентификатора первого сообщения и вычитании его 15, но он работает только в том случае, если идентификаторы являются последовательными, что не всегда так.
спасибо.
Спасибо, это сработало. Об инъекции: значение не генерируется пользователем, а функцией, как только пользователь подключается. Таким образом, на данный момент никаких помех для любого пользовательского ввода нет. Я думаю прямо? Когда я получаю пользовательский ввод и вам нужно запросить его, я проверяю, что данные соответствуют тому, что должно быть (номера только и т. Д.). – Baylock
До тех пор, пока вы доверяете своей функции, да. Но это хорошая дисциплина для использования параметризованных запросов в любом случае (так что вы не забываете, что время, когда вы * * обрабатываете пользовательские данные); Кроме того, мне нравится помещать предупреждение всякий раз, когда вижу переменные, встроенные в SQL, в интересах любых других читателей. – eggyal
Я получаю вашу точку, но переменная, как вы ее видите, если только она не сгенерирована, всегда готова к ее использованию. Мне просто не нравится снимать его внутри запроса, ради ясности. Для примера он генерируется простой функцией date(). Я считаю, что это можно доверять. Я действительно благодарю вас за вашу заботу. Ты прав. Кто-то, кто не знает, как объединиться, скорее всего, совершит такие ошибки :-) – Baylock