Я подозреваю, что ваш $chat_id
пуст.Таким образом, ваш SQL-запрос в конечном итоге выглядит так:
SELECT has_paid FROM info WHERE chat_id=
Синтаксические ошибки MySQL сообщают о той части SQL-запроса, которая следует - место, где MySQL запутался.В этом случае он сообщает об ошибке около ''
, поскольку в конце запроса он запутался.Это неудивительно, поскольку для =
требуется аргумент с правой стороны.
Вы должны проверить код, в котором вы установили $chat_id
, и убедиться, что он имеет непустое значение, прежде чем пытаться выполнить запрос.
Кстати, мне кажется странным, что вы используете prepare()
и execute()
, но вы не используете параметры запроса.Вы должны написать код следующим образом:
$stmt = $pdo->prepare("SELECT has_paid FROM info WHERE chat_id=?");
$stmt->execute([$chat_id]);
(Нет необходимости использовать bindValue()
, как скажут некоторые люди.)