【发布时间】:2017-07-20 14:27:27
【问题描述】:
我收到此错误:
错误:INSERT INTO 用户(用户名、密码、邮件、余额、 depost1,depost2,depost3)值(测试, 4f4dfc9a3bec784d456fafabc725977e, test@test.test, '0', '0', '0', '0') 您的 SQL 语法有错误;检查手册 对应于您的 MariaDB 服务器版本,以便使用正确的语法 在第 2 行的 '@test.test, '0', '0', '0', '0')' 附近。
所以,我查看了我的语法,但我找不到任何错误的地方。这是我的代码:
<?php
inculde('config.php');
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO users (username, password, mail, balance, depost1, depost2, depost3)
VALUES ($user, $result, $mail, '0', '0', '0', '0')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
【问题讨论】:
-
$sql = "INSERT INTO users (username, password, mail, balance, depost1, depost2, depost3) VALUES ('$user', '$result', '$mail', '0', '0', '0', '0')"; -
$user、$result、$mail 的报价缺失
-
这段代码在实际环境中使用是完全不安全的。如果您想保持数据安全和数据库完整,请使用准备好的语句和
password_hash()/password_verify()。 -
您还在很可能不需要引号的地方使用了引号,很可能是
int列类型的整数,而字符串文字要求它们被引用。 -
你也打错了 =>
inculde应该读作include,但这会给你带来一个完全不同的错误,它没有包含在原始帖子中,所以恕我直言,与帖子的关闭无关。