Ошибка синтаксиса MySQL с адреса электронной почты INSERT INTO

0

У меня возникли проблемы с вводом адреса электронной почты в базу данных MySQL. Я получаю ужасную ошибку 1064.

Ошибка при создании нового пользователя У вас возникла ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии сервера MariaDB, для правильного синтаксиса, используемого рядом с '@email.com, password, 20)' в строке 1 - 1064

Поэтому я предполагаю, что мне нужно избежать @в переменной электронной почты? Но мне ничего не нравится, Мария. Создание запроса в PHPMyAdmin тоже не помогло. Любые советы с благодарностью принимаются.

// update SQL
    $sql2 = "INSERT INTO members (username, email, password, balance) VALUES ($new_player, $new_email, $new_password, 20)";
    if ($db->query($sql2) == TRUE) {
            echo "** New User Created **<BR>";
                } else {
                echo "Error creating new user " . $db->error." -- ". $db->errno ."<BR>";
    }
  • 1
    Строки должны быть в кавычках. Вы должны использовать параметризованные запросы. Также, надеюсь, этот пароль хешируется.
  • 0
    В ваших значениях измените их на: ('$ new_player', '$ new_email', '$ new_password', 20). Это будет работать при входе в базу данных.
Показать ещё 2 комментария
Теги:

1 ответ

0

Изменение ваших значений для использования кавычек должно решить эту проблему. Однако для предотвращения инъекций SQL вы должны использовать подготовленный оператор. Подготовленное выражение будет выглядеть следующим образом:

$sql2 = INSERT INTO members (username, email, password, balance) VALUES (?,?,?,20)";
$pStmt = $db->prepare($sql2);
$pStmt->bind_param("sss", $username,$email, $password);
$pStmt->execute();

Если вы уверены, что хотите использовать свою текущую настройку, потому что вы находитесь в тестовой среде или вам это особенно нужно, изменение вашего запроса на это будет работать:

$sql2=INSERT INTO members (username, email, password, balance) VALUES ('$new_player', '$new_email', '$new_password', 20);
  • 0
    в подготовленном утверждении wquery вы не используете балансовую стоимость ???
  • 0
    @MohitKumar мой плохой, я пропустил это, только исправил это!
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню