Mysqli bind param - количество переменных не соответствует количеству параметров
Я не могу понять, почему я получаю ошибку: "Количество переменных не соответствует количеству параметров в подготовленном утверждении".
Мой код выглядит так:
$DB['con'] = new mysqli($$DB['host'],$DB['user'],$DB['pass'],$DB['base']);
$stmt=$DB['con']->prepare("insert into points(iduser,puncte,nume,email,telefon,ultimulpost)values('?',?,'?','?','?',(SELECT CURDATE()))");
$stmt->bind_param('sisss',$idm,$mynumber,$nume,$email,$tel);
$stmt->execute();
1 ответ
Проблема в этой строке:
$stmt=$DB['con']->prepare("insert into points(iduser,puncte,nume,email,telefon,ultimulpost)values('?',?,'?','?','?',(SELECT CURDATE()))");
Ваша ошибка в том, что вы ставите кавычки вокруг ?
заполнители. Это означает, что они интерпретируются как буквальная строка ?
, а не как заполнитель, который нуждается в заполнении. Таким образом, у вас есть только один заполнитель, поэтому, когда вы отправляете пять, он говорит, что у вас неправильный номер.
Цитаты не нужны. Весь смысл 'sisss'
это сказать "эти значения являются строками", поэтому вам не нужно использовать кавычки, чтобы сказать то же самое.
Следующее должно работать:
$stmt=$DB['con']->prepare("insert into points(iduser,puncte,nume,email,telefon,ultimulpost)values(?,?,?,?,?,(SELECT CURDATE()))");