我无法在MySQL数据库中插入电子邮件地址。我遇到了可怕的1064错误。
创建新用户时出错您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册以获取正确的语法,以在第1行至1064行的'@ email.com,password,20)'附近使用
所以我猜想我需要在email变量中转义@吗?但是我似乎没有做任何事情取悦玛丽亚。在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>";
}
答案 0 :(得分:0)
更改您的值以使用引号应解决此特定问题。但是,为了防止SQL注入,您应该使用准备好的语句。准备好的语句将如下所示:
<!-- Start Scripts -->
<script src="jquery/dist/jquery.js"></script>
<script src="scripts/bootstrap.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js"></script>
<script src="scripts/jquery.fullPage.min.js"></script>
<script src="scripts/modernizr.js"></script>
<script src="scripts/main.js"></script>
<script src="scripts/surfboard.js"></script>
如果您确定要使用当前的设置是因为您处于测试环境中,或者特别需要它,则将查询更改为此即可:
$sql2 = INSERT INTO members (username, email, password, balance) VALUES (?,?,?,20)";
$pStmt = $db->prepare($sql2);
$pStmt->bind_param("sss", $username,$email, $password);
$pStmt->execute();