Как исправить STMT подготовить и связать

У меня возникли проблемы с использованием этой подготовки и связывания. Я попробовал то же самое с меньшим количеством переменных для привязки. Я успешно использовал приготовление только с Fname, Lname, Password, $ UserID и использование sssi с объектом bind_param. Может кто-нибудь объяснить, что я делаю неправильно, используя больше переменных в моем коде привязки? С кодом ниже он только печатает те же данные из MySQL и не обновляет их.

if ($stmt = $con->prepare("UPDATE users SET Fname = ?, Lname = ?, Password = ?, UserLevel = ?, Email = ?, WHERE UserID= ?"))
{
$stmt->bind_param("ssssssi", $firstname, $lastname, $PW, $UserLevel, $EM, $UserID);
$stmt->execute();
$stmt->close();
}
// show an error message if the query has an error
else
{
echo "ERROR: could not prepare SQL statement.";
}

// redirect the user once the form is updated
header("Location: admin.php");

-2

Решение

Хотя вы не указали типы данных, что усложняет задачу, я рискну предположить.

Fname = s

Lname = s

Password = s

UserLevel = i (?)

Email = s

Я считаю 4 с ‘там, но у вас есть 6.

Попробуй это,

 $stmt->bind_param("sssisi", $firstname, $lastname, $PW, $UserLevel, $EM, $UserID);

Редактировать 1

Как сказал @ Fred-ii-, ваш SQL-запрос неверен.

+ Изменить

"UPDATE users SET Fname = ?, Lname = ?, Password = ?, UserLevel = ?, Email = ?, WHERE UserID= ?"

чтобы,

"UPDATE users SET Fname = ?, Lname = ?, Password = ?, UserLevel = ?, Email = ? WHERE UserID= ?"

У вас была тренировка ,,

1

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

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

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