У меня возникли проблемы с вводом адреса электронной почты в базу данных 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>";
}
Изменение ваших значений для использования кавычек должно решить эту проблему. Однако для предотвращения инъекций 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);