Ошибка Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined?

Ссылка скопирована
1 ответ

Код

<? error_reporting(E_ALL); ini_set('display_startup_errors', 1); ini_set('display_errors', '1'); if(!isset($_SESSION['login_id'])){     echo "Вы на авторизированы";     exit(); } $id = $_SESSION['login_id']; require_once '../boot.php'; $name = $_GET["name"]; $stmt = pdo()->prepare("INSERT INTO `chats` (`id`, `name`, `owner-id`, `users-id`, `admins-id`) VALUES (NULL, :name, :owner-id, :users-id, :admins-id)"); $stmt->execute([     'name' => $name,     'owner-id' => $id,     'users-id' => $id,     'admins-id' => $id, ]);

<? error_reporting(E_ALL); ini_set('display_startup_errors', 1); ini_set('display_errors', '1'); if(!isset($_SESSION['login_id'])){ echo "Вы на авторизированы"; exit(); } $id = $_SESSION['login_id']; require_once '../boot.php'; $name = $_GET["name"]; $stmt = pdo()->prepare("INSERT INTO `chats` (`id`, `name`, `owner-id`, `users-id`, `admins-id`) VALUES (NULL, :name, :owner-id, :users-id, :admins-id)"); $stmt->execute([ 'name' => $name, 'owner-id' => $id, 'users-id' => $id, 'admins-id' => $id, ]);

Выдаёт ошибку

Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in /home/z/z92616gy/z92616gy.beget.tech/public_html/chat/do_create_chat.php:17 Stack trace: #0 /home/z/z92616gy/z92616gy.beget.tech/public_html/chat/do_create_chat.php(17): PDOStatement->execute(Array) #1 {main} thrown in /home/z/z92616gy/z92616gy.beget.tech/public_html/chat/do_create_chat.php on line 17

Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in /home/z/z92616gy/z92616gy.beget.tech/public_html/chat/do_create_chat.php:17 Stack trace: #0 /home/z/z92616gy/z92616gy.beget.tech/public_html/chat/do_create_chat.php(17): PDOStatement->execute(Array) #1 {main} thrown in /home/z/z92616gy/z92616gy.beget.tech/public_html/chat/do_create_chat.php on line 17

В чём дело?

Дополнительно:

https://phpfaq.ru/pdo/parameter_was_not_defined
Пункт 4
Мог бы и сам загуглить...

В названиях плейсхолдеров допускаются только цифры, латинские буквы и подчёркивание, [:][0-9a-zA-Z_]+

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Мария Код Ответ

Ошибка Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined означает, что в запросе к базе данных не было правильно определенного параметра. Это может произойти, если количество параметров, переданных в запросе, не соответствует количеству параметров, указанных в самом запросе.

Чтобы исправить эту ошибку, необходимо внимательно проверить запрос к базе данных и убедиться, что количество параметров, указанных в запросе, соответствует количеству параметров, переданных в запросе. Также стоит убедиться, что все параметры были правильно определены и переданы в нужном порядке.

Если вы используете подготовленные запросы с PDO, убедитесь, что все параметры были переданы с помощью метода bindParam или bindValue, и что они были правильно привязаны к соответствующим меткам в запросе.

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

В целом, ошибка Invalid parameter number: parameter was not defined часто возникает из-за недостаточной внимательности при написании кода и неправильной передачи параметров в запросе. Поэтому важно быть внимательным при работе с запросами к базе данных и следить за правильностью передачи параметров.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно