Я новичок в php, я изучаю, как обновлять таблицу с помощью php с помощью запросов sql. Но почему-то я застрял в части запроса SQL. Он всегда показывает ошибку, которую я не могу понять.
Запрос, который я использую: $query= "UPDATE users SET username = '$username', password = '$password' WHERE id = $id " ;
И ошибка, которую я получаю:
У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии сервера MariaDB, для правильного синтаксиса для использования рядом с '' в строке 1
Сначала я искал любые синтаксические ошибки, но я думаю, что это не так.
Я также упоминаю код validation isset, который я использовал на всякий случай.
<?php
include "db.php";
include "functions.php";
?>
<?php
if(isset($_POST["submit"])){
$username= $_POST["username"];
$password= $_POST["password"];
$id= $_POST["id"];
$query= "UPDATE users SET username = '$username' , password = '$password' WHERE id = $id " ;
$result=mysqli_query($connection,$query);
if(!$result){
die("QUERY FAILED".mysqli_error($connection));
}
}
?>
$connection
уже определено в db.php..
Не могли бы вы рассказать, где моя вина?
Сохраняются ли ваши пароли в вашей базе данных? Если это так, это может быть вашей проблемой. Попробуй это.
$password = mysqli_real_escape_string($_POST['password']);
$hashed_password = password_hash($password, PASSWORD_BCRYPT, array('cost => 12'));
$query= "UPDATE 'users' SET 'username' = '$username' , 'password' =
'$hashed_password' WHERE 'id' = $id " ;
Если вы сохраняете свой пароль в своей базе данных в виде обычного текста, я бы рекомендовал использовать эту функцию password_hash. Я бы также рекомендовал проверить подготовленные заявления для этого, а также более безопасно и поможет защитить от внедрения sql.
Если вы получаете идентификаторы, имя пользователя и пароль, тогда
Просто попробуйте это
$query= "UPDATE 'users' SET 'username' = '$username' , 'password' = '$password' WHERE 'id' = $id " ;