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