Php SQL语法错误
我得到这个错误: 错误:插入用户(用户名、密码、邮件、余额、, 仓库1、仓库2、仓库3)值(测试、, 4f4dfc9a3bec784d456fafabc725977e,test@test.test, '0', '0', '0', '0') 您的SQL语法有错误;检查手册 对应于要使用的正确语法的MariaDB服务器版本 在第2行的'@test.test',0',0',0')附近 所以,我查看了我的语法,但没有发现任何错误。这是我的密码:Php SQL语法错误,php,mysql,sql,mariadb,Php,Mysql,Sql,Mariadb,我得到这个错误: 错误:插入用户(用户名、密码、邮件、余额、, 仓库1、仓库2、仓库3)值(测试、, 4f4dfc9a3bec784d456fafabc725977e,test@test.test, '0', '0', '0', '0') 您的SQL语法有错误;检查手册 对应于要使用的正确语法的MariaDB服务器版本 在第2行的'@test.test',0',0',0')附近 所以,我查看了我的语法,但没有发现任何错误。这是我的密码: <?php inculde('config.php'
<?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')"
当将变量直接放入字符串中时,即使它们是字符串,也不会自动用引号括起来
您必须将查询更改为以下内容:
$sql = "INSERT INTO users (username, password, mail, balance, depost1, depost2, depost3) VALUES ('$user', '$result', '$mail', '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=“插入用户(用户名、密码、邮件、余额、仓库1、仓库2、仓库3)值(“$user”、“$result”、“$mail”、“0”、“0”、“0”)”代码>$user、$result、$mail的漏引号在实时环境中使用此代码是完全不安全的。如果您希望保持数据安全和数据库完整,请使用准备好的语句和password\u hash()/password\u verify()
。在最不需要引号的地方也使用引号,最有可能是int
列类型的整数,而字符串文字要求引用。您还犯了一个拼写错误=>inculde
,应该读为include
,但这会给您带来一个完全不同的错误,该错误未包含在原始帖子中,因此,IMHO与文章的结尾无关。他们在这里也输入了一个你应该注意到的错误,但正如我在他们问题下的评论中所指出的,这是另一个不属于原始文章的问题。我刚才只提到了一句放错地方的话。@Fred ii-同意,谢谢