2015-10-17 9 views
0

Я делаю регистрационную форму, и я использую параметры привязки PHP при вставке данных в базу данных.Ошибка PHP bind_param: включение вопросительных знаков ('?') В базу данных, а не фактических значений

$fnameclean = mysqli_real_escape_string($mysqli_conn, $_POST['first_name']); 
$passwordclean = mysqli_real_escape_string($mysqli_conn, hash("sha512", $_POST['password'])); 
$lnameclean = mysqli_real_escape_string($mysqli_conn, $_POST['last_name']); 
$emailclean= mysqli_real_escape_string($mysqli_conn, $_POST['email']); 



$stmt = $mysqli_conn->prepare("INSERT INTO user (firstname, surname, email, password) VALUES ('?', '?', '?', '?')"); 
$stmt->bind_param("ssss", $fnameclean, $lnameclean, $emailclean, $passwordclean); 

$stmt->execute(); 
$stmt->close(); 

При нажатии на кнопку отправки, все, что я могу видеть в моей базе данных, вопросительные знаки на полях: Имя, фамилия, адрес электронной почты и пароль.

Однако, когда я пытаюсь добавить информацию в базу данных без параметров связывания он работает прекрасно

код:

$query1 = "INSERT INTO user (firstname, surname, email, password) VALUES ('$fnameclean', '$lnameclean', '$emailclean', '$passwordclean')";  
$mysqli_conn->query($query1); 

Что я здесь делаю неправильно?

+0

''? ''Не является параметром связывания, это строковый литерал. – Neil

+0

Я нашел ошибку, она должна быть как VALUES (?,?,?,?), А не VALUES ('?', '?', '?', '?') – user5455438

ответ

0
VALUES (?, ?, ?, ?) 

' Нет, чтобы использовать в запросе, где используется ? для параметра связывания. Таким образом, ваш вопрос:

$stmt = $mysqli_conn->prepare("INSERT INTO user (firstname, surname, email, password) VALUES (?, ?, ?, ?)"); 
+0

Большое спасибо, это сработало. – user5455438

 Смежные вопросы

  • Нет связанных вопросов^_^