ошибка mysqli_stmt::bind_param(): Number of variables doesn't match number of parameters in prepared statement

181
20 апреля 2022, 12:30

выскакивает ошибка

Number of variables doesn't match number of parameters in prepared statement

вот код


    // создание строки запроса
$query =("INSERT INTO test1 (score, field1) VALUES(NOT NULL,?)");
// подготавливаем запрос
$stmt = $link->prepare($query); 
// привязываем к нему переменные
$stmt->bind_param("ss", $_POST['licscore'], $_POST['field_0']); 
//выполняем запрос
$stmt->execute();
Answer 1

В строке:

$query =("INSERT INTO test1 (score, field1) VALUES(NOT NULL,?)");

вы пытаетесь в таблицу test1 вставить строку со значениями для полей (столбцов таблицы) score и field1. То есть пытаетесь заполнить два поля. В куске VALUES(NOT NULL,?) вы как раз передаёте эти два значения. Первое: not null - то есть, значение должно быть не пустым. Второй параметр и значение будет подставлен позже из переменной вместо вопросительного знака.

Вот только в момент подстановки в строке:

$stmt->bind_param("ss", $_POST['licscore'], $_POST['field_0']);

вы почему-то передаёте уже не два, а три значения: строчку "ss", и значения двух переменных: $_POST['licscore'] и $_POST['field_0'].

То есть запрашивали два, а передаёте ТРИ значения. Ну и важно всё-таки прислушаться к тому, что вам писали выше в комментариях.

P. S. В тексте ошибки "stmt::bind_param(): Number of variables doesn't match number of parameters in prepared statement" вам как раз об этом сказано. Не знаете английского, хотя бы переведите в яндексе или гугле текст ошибки.

Upd: Самое главное: в команде на вставку данных в таблицу, в той части команды, где передаются значения: VALUES(NOT NULL,?) not null использовать некорректно. Нельзя. Читайте документацию, ссылки на которую вам дали выше в комментариях.

READ ALSO
Объясните в чем разница

Объясните в чем разница

В гайде использовался этот кусок кода:

157
Не работает ajax подгрузка постов WordPress

Не работает ajax подгрузка постов WordPress

Есть страничка постов с табами для каждой категории, выглядит это так:

98
Ошибка Trying to access array offset on value of type null

Ошибка Trying to access array offset on value of type null

Я понимаю, что эту ошибку уже тысячу раз рассматривалиНа просторах интернета я нашёл три решения этой ошибки в моём случае

111
Загрузка изображений на сервер. Безопасен ли код?

Загрузка изображений на сервер. Безопасен ли код?

Написал код загрузки изображения на сервер - надежен ли он или можно как то загрузить вредоносный кодМожет есть советы какие нибудь? PHP

198