#php #mysql #phpmyadmin #insert-update
#php #mysql #phpmyadmin #вставить-обновить
Вопрос:
Мне нужно обновить мои данные в базе данных. Я успешно создал форму регистрации пользователя и входа в систему на php, поэтому мне нужно обновить и удалить данные в базе данных. И я получаю сообщение об ошибке функции обновления.
Есть условие: идентификатор (основной) и адрес электронной почты (уникальный) и имя пользователя (уникальное).
Сообщение об ошибке в этой программе:
«Ошибка при обновлении записи: у вас ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MariaDB, на предмет правильного синтаксиса для использования рядом с » в строке 1″.
<?php
session_start();
require('connect.php');
if(isset($_POST['submit'])){
$id = $_POST['id'];
$username = $_POST['username'];
$name = $_POST['name'];
$email = $_POST['email'];
$password = md5($_POST['password']);
$dob = $_POST['dob'];
$gender = $_POST['gender'];
$location = $_POST['location'];
$course = $_POST['course'];
$mobile = $_POST['mobile'];
$sql = " UPDATE user SET username ='$username', name = '$name', email = '$email', password='$password', dob ='$dob', gender ='$gender',location ='$location', course = '$course', mobile = '$mobile' WHERE id= $id ";
if (mysqli_query($mysqli, $sql)) {
$smsg = "Record updated successfully";
} else {
$fmsg = "Error updating record: " . mysqli_error($mysqli);
}
}
?>
<html>
<head>
<title>User Update PHP amp; MYSQL</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" >
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap-theme.min.css" >
<link rel="stylesheet" href="main.css" >
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<a class= "float-right" href = "logout.php"> LOGOUT </a>
<?php if(isset($smsg)){ ?><div class="alert alert-success" role="alert"> <?php echo $smsg; ?> </div><?php } ?>
<?php if(isset($fmsg)){ ?><div class="alert alert-danger" role="alert"> <?php echo $fmsg; ?> </div><?php } ?>
<form class="form-signin" method="POST">
<h2 class="form-signin-heading">Edit Profile</h2>
<div class="input-group">
<input type="hidden" name="id" placeholder="ID">
<input type="text" name="username" class="form-control" placeholder="username" required></div>
<label for="inputname" class="sr-only">Full Name</label>
<input type="text" name="name" id="inputname" class="form-control" placeholder="Full Name"required>
<label for="inputEmail" class="sr-only">Email address</label>
<input type="email" name="email" id="inputEmail" class="form-control" placeholder="Email address"required>
<label for="inputPassword" class="sr-only">Password</label>
<input type="password" name="password" id="inputPassword" class="form-control" placeholder="Password" required>
<label for="inputDoB" class="sr-only">DOB</label>
<input type="date" name="dob" id="inputDoB" class="form-control" placeholder="DOB"required>
<td>Gender:</td>
<input type="radio" name="gender" value="m">Male
<input type="radio" name="gender" value="f">female
</tr>
<label for="inputlocation" class="sr-only">Location</label>
<input type="text" name="location" id="inputlocation" class="form-control" placeholder="Location"required>
<label for="inputcourse" class="sr-only">Course</label>
<input type="text" name="course" id="inputcourse" class="form-control" placeholder="Course" required>
<label for="inputmobile" class="sr-only">Mobile</label>
<input type="text" name="mobile" id="inputmobile" class="form-control" placeholder="Mobile" required>
<button class="btn btn-lg btn-primary btn-block" type="submit" name="submit">Update</button>
</div>
</body>
</head>
</html>
Комментарии:
1. Распечатайте свой sql и вставьте сюда.
2.
<input type="hidden" name="id" placeholder="ID">
не имеет значения .
Ответ №1:
Вы не добавили ценности id
.
Это скрытая переменная, поэтому ее можно установить только через PHP или JS, а не с помощью пользовательского ввода.
Следовательно, ваш запрос после предложения where является пустым и вызывает ошибку.
Решение:
Присвойте id
значение.
<input type="hidden" name="id" placeholder="ID" value="<?php echo $user_id;?>">
И чтобы избежать этой ошибки, проверьте, id
отправлена ли она.
Изменить:
if(isset($_POST['submit'])) {
Для:
if(isset($_POST['submit']) amp;amp; ! empty($_POST['id'])){
Комментарии:
1. «Ошибка при обновлении записи: у вас ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MariaDB, на предмет правильного синтаксиса для использования ниже» Обратите внимание: Неопределенная переменная: id в D:xampphtdocsxamppAnto в строке 1 » @Pupil