mysql — PHP bind_param error: вставка вопросительных знаков (‘?’) в базу данных, а не фактические значения

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

$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

Решение

VALUES (?, ?, ?, ?)

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

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]