Php SQL语法错误

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'

我得到这个错误:

错误:插入用户(用户名、密码、邮件、余额、, 仓库1、仓库2、仓库3)值(测试、, 4f4dfc9a3bec784d456fafabc725977e,test@test.test, '0', '0', '0', '0') 您的SQL语法有错误;检查手册 对应于要使用的正确语法的MariaDB服务器版本 在第2行的'@test.test',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')"

当将变量直接放入字符串中时,即使它们是字符串,也不会自动用引号括起来

您必须将查询更改为以下内容:

$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-同意,谢谢