Ваша главная проблема заключается в том, что вы используете синтаксис PHP в вашей строке SQL.Это делает все ваши значения неверными, и поэтому ваше предложение id
in where
не соответствует ни одной записи, поэтому никакие записи не обновляются.Ваш запрос должен быть
$sql= "UPDATE users SET username= '$username' , email= '$email' WHERE id='$id' ";
или
$sql= "UPDATE users SET username= '" .$username. "' , email= '" . $email . "' WHERE id='" .$id. "' ";
. Это может быть выполнено, но открыто для SQL-инъекций.Вы должны использовать подготовленные операторы, параметризировать их и использовать отчеты об ошибках:
error_reporting(1);
if(isset($_POST['submit']){
$email = $_POST['email'];
$username= $_POST['username'];
$id = $_POST['id'];
$sql= "UPDATE users SET username=?, email=? WHERE id=?";
$stmt = mysqli_prepare($connection, $sql)) {
mysqli_stmt_bind_param($stmt, "ssi", $username, $email, $id);//third i assumes "id" is an integer
$result = mysqli_stmt_execute($stmt);
if(!empty($result)) {
echo "<h3><center>User information Updated successfully</center></h3>";
} else {
printf("Error: %s.\n", mysqli_stmt_error($stmt));
}
}
Это грубый непроверенный ответ.Более подробную информацию о подготовленных заявлениях можно найти здесь, http://php.net/manual/en/mysqli.quickstart.prepared-statements.php.