Ошибка Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined?
Код
<? 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_]+
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Ошибка Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined означает, что в запросе к базе данных не было правильно определенного параметра. Это может произойти, если количество параметров, переданных в запросе, не соответствует количеству параметров, указанных в самом запросе.
Чтобы исправить эту ошибку, необходимо внимательно проверить запрос к базе данных и убедиться, что количество параметров, указанных в запросе, соответствует количеству параметров, переданных в запросе. Также стоит убедиться, что все параметры были правильно определены и переданы в нужном порядке.
Если вы используете подготовленные запросы с PDO, убедитесь, что все параметры были переданы с помощью метода bindParam или bindValue, и что они были правильно привязаны к соответствующим меткам в запросе.
Также полезно проверить правильность синтаксиса запроса и убедиться, что все переменные были правильно инициализированы перед выполнением запроса.
В целом, ошибка Invalid parameter number: parameter was not defined часто возникает из-за недостаточной внимательности при написании кода и неправильной передачи параметров в запросе. Поэтому важно быть внимательным при работе с запросами к базе данных и следить за правильностью передачи параметров.