@yagyar001

Ошибка синтаксиса mysql, почему?

Всем привет.
Вылазит ошибка постоянно при регистрации. Но при этом без проблем добавляется запись в базу.
Вот ошибка:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= 'yagyar0001111'' at line 1
Вот запрос:
$query = "INSERT INTO users SET login = '$login', name = '$name', email = 
    $email', pass = '$pass', status = 'user'";
     mysqli_query($link, $query) or die (mysqli_error($link));
    $_SESSION['auth'] = true;
    $query = "SELECT * FROM users WHERE login = '$login'";
    mysqli_query($link, $query) or die (mysqli_error($link));
    $user = mysqli_fetch_assoc(mysqli_query($link, $query));
    $_SESSION['id'] = $user['id'];
    $_SESSION['login'] = $user['login'];
    $_SESSION['status'] = $user['status'];
    $_SESSION['message_reg'] = "Регистрация успешно завершена";
    header('Location: index.php?reg=ok');



Вот таблица:
5c989c41449db401153435.png
Что не так сделал? Вообще понять не могу. Может он ругается на второй запрос? Да и там вроде все нормально. True в сессию записывается. Но переадресации не происходит. Видимо во втором запросе какие то проблемы.
  • Вопрос задан
  • 213 просмотров
Пригласить эксперта
Ответы на вопрос 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
потому что это называется SQL инъекция.

Запросы надо выполнять через подготовленные выражения.
$query = "INSERT INTO users SET login = ?, name = ?, email = ?, pass = ?, status = 'user'";
$stmt = $link->prepare($query);
$stmt->bind_param("ssss",$login,$name,$email,$pass);
$stmt->execute();


То же самое касается и всех остальных запросов, в которых участвуют переменные
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы