Я пытался это сделать, но не могу найти ошибку. Это работало раньше, когда у меня было только «имя, адрес электронной почты, мобильный», когда я добавляю «пароль», он перестает работать ...
Я не знаю, что делать, чтобы он работал должным образом, как раньше, пожалуйста, помогите
if ( !empty($_POST)) {
// keep track validation errors
$nameError = null;
$emailError = null;
$mobileError = null;
$passwordError = null;
// keep track post values
$name = $_POST['name'];
$email = $_POST['email'];
$mobile = $_POST['mobile'];
$password = $_POST['mobile'];
// validate input
$valid = true;
if (empty($name)) {
$nameError = 'Please enter Name';
$valid = false;
}
if (empty($email)) {
$emailError = 'Please enter Email Address';
$valid = false;
}
if (empty($mobile)) {
$mobileError = 'Please enter Mobile Number';
$valid = false;
}
if (empty($password)) {
$passwordError = 'Please enter Password Number';
$valid = false;
}
// update data
if ($valid) {
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//ERROR IS HERE $sql = "UPDATE customers set name = ?, email = ?, mobile = ?, password =?, WHERE id = ?";
$q = $pdo->prepare($sql);
$q->execute(array($name,$email,$mobile,$password,'ADD',$id));
Database::disconnect();
header("Location: index.php");
}
} else {
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT * FROM customers where id = ?";
$q = $pdo->prepare($sql);
$q->execute(array($id));
$data = $q->fetch(PDO::FETCH_ASSOC);
$name = $data['name'];
$email = $data['email'];
$mobile = $data['mobile'];
$password = $data['password'];
Database::disconnect();
}
?>
Что значит "работать"? (т.е. что вы пытаетесь сделать, что терпит неудачу?) Кроме того, в чем заключалась ошибка, которую вы видите? Наконец, я бы рекомендовал обновить форматирование, чтобы весь ваш код находился в блоке кода для удобства чтения (включая последний ?>).
айнбер большое спасибо, заработало !!!!
Не храните пароли в виде обычного текста.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


нужно сменить $password = $_POST['mobile']; кому: $password = $_POST['password'];
Хотя это приведет к тому, что в базу данных попадут неверные данные, это не помешает обновлению работать, как утверждает OP.
Привет, похоже, у вас синтаксическая ошибка,
неожиданная запятая
//ERROR IS HERE $sql = "UPDATE customers set name = ?, email = ?, mobile = ?, password =?, WHERE id = ?";// remove comma prior to WHERE
попробуйте, как показано ниже,
$sql = "UPDATE customers set name = ?, email = ?, mobile = ?, password =? WHERE id = ?";
password =?, WHERE idубираем запятую. Проверяйте ошибки mysqli, когда что-то не получается, чтобы получить дополнительную информацию о том, почему что-то не получается.