Mysql где может быть ошибка? при запросе

Собственно есть запрос

$sth = $db->query("SELECT SUM(`counter`) AS `news_read` FROM `dle_post_extras` WHERE `post_id` = ? AND `{$dtn}` > ?");

Где ошибка может быть? Вот сама ошибка...

The Error returned was:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? AND `2020-02-12` > ?' at line 1

Ответы (2 шт):

Автор решения: Александр Пшеничный
$sth = $db->query("SELECT SUM(`counter`) AS `news_read` FROM `dle_post_extras` WHERE `post_id` = ?s AND `имя поля в базе по котору нужно сравнить` > ?s", $postId, $date);
→ Ссылка
Автор решения: DmitryDevelop

PHP поддерживает подготовленные запросы с указанием параметров, там, где вам необходимо вставить своё значение, нужно поставить :любое имя , выглядеть готовый пример будет примерно так

$переменная = $dbSelect->prepare('SELECT `username` FROM `users` WHERE `id` = :id LIMIT 1');
$переменная->execute([':id' => $и сюда само значение]);
$переменная->setFetchMode(PDO::FETCH_OBJ);
$получаем данные = $переменная ->fetch();

Можно указывать несколько значений в любых местах, порядок постановки не важен.

таким образом Вы не ошибётесь при постановке запроса и всегда будете знать, какой параметр что делает.

Могу порекомендовать статью на хабре - http://phpfaq.ru/pdo

→ Ссылка