Как можно исправить ошибку «Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: :max»?

Как исправить ошибку синтаксиса, возникающую при использовании переменной $max в запросе SQL в методе postsList класса Main?
  • 8 марта 2024 г. 17:08
Ответы на вопрос 4
1. Для исправления ошибки "Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: :max" необходимо убедиться, что количество переданных параметров в SQL запросе соответствует количеству привязанных параметров. Проверьте, что число символов :max в вашем SQL запросе соответствует числу переданных параметров. 

2. Чтобы исправить ошибку синтаксиса, возникающую при использовании переменной $max в запросе SQL в методе postsList класса Main, необходимо правильно подготовить ваш SQL запрос, вставив переменную $max в запрос с помомщью оператора подстановки (?). Например:

```php
$max = 10;
$stmt = $pdo->prepare("SELECT * FROM posts ORDER BY id DESC LIMIT ?");
$stmt->execute([$max]);
```

Таким образом, переменная $max будет корректно передана в запрос и не вызовет ошибки синтаксиса.
1. В PostrgeSQL используется синтаксис 
[ LIMIT { number | ALL } ] [ OFFSET number ]
2. Нельзя передавать в запрос параметры, для которых в запросе нет плейсхолдеров.
ты нас не уважаешь, и просишь совета.... 

на пошел ты на х..

https://qna.habr.com/help/rules
3. В процессе создания вопроса пользователь Сервиса обязан:
3.8. Использовать для демонстрации фрагментов кода только специальный тег < code> или специальные демонстрационные ресурсы.
Размещение фрагментов кода в виде изображений запрещено.
ОШИБКА: синтаксис LIMIT #,# не поддерживается LINE 1: SELECT * FROM posts ORDER BY id DESC LIMIT $1, $2 ^ HINT: Используйте отдельные предложения LIMIT и OFFSET

Текст ошибки читать то пробовал?
Похожие вопросы