«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Почему я получаю сообщение об ошибке «Несоответствие количества переменных привязки» в подготовленных MySQLi утверждениях?

Почему я получаю сообщение об ошибке «Несоответствие количества переменных привязки» в подготовленных MySQLi утверждениях?

Опубликовано 31 октября 2024 г.
Просматривать:151

Why Am I Getting \

Несоответствие количества переменных привязки при вставке подготовленного оператора

При выполнении оператора INSERT с использованием подготовленных операторов MySQLi пользователи могут столкнуться с ошибкой: " Количество переменных привязки не соответствует количеству полей в подготовленном операторе». . Например, рассмотрим приведенный ниже фрагмент кода:

if($stmt = $conn->prepare("INSERT INTO login(user, pass) VALUES(?, ?)")) { /* Параметры привязки s - строка, b - blob, i - int и т. д. */ $stmt->bind_param("ss", $user, $pw); /* Выполняем это */ $stmt->выполнить(); /* Привязка результатов */ $stmt->bind_result($user, $pw); /* Закрытие оператора */ $stmt->закрыть(); $userId = $conn->insert_id; }

if($stmt = $conn->prepare("INSERT INTO login(user, pass) VALUES(?, ?)")) {

  /* Bind parameters s - string, b - blob, i - int, etc */
  $stmt->bind_param("ss", $user, $pw);

  /* Execute it */
  $stmt->execute();

  /* Bind results */
  $stmt->bind_result($user, $pw);

  /* Close statement */
  $stmt->close();
  $userId = $conn->insert_id;
}

Решение состоит в том, чтобы удалить вызов методаbind_result(), поскольку оператор INSERT не возвращает никаких результатов. Обновленный код ниже корректно вставляет данные в таблицу:

if($stmt = $conn->prepare("INSERT INTO login(user, pass) VALUES(?, ?)")) { /* Параметры привязки s - строка, b - blob, i - int и т. д. */ $stmt->bind_param("ss", $user, $pw); /* Выполняем это */ $stmt->выполнить(); /* Закрытие оператора */ $stmt->закрыть(); $userId = $conn->insert_id; }

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3