插入表中的 SQL 错误


SQL error inserting into table

我在php中不断收到此错误。当我硬设置值时,它工作正常,但似乎不适用于变量。

错误:插入 联系我们(姓名、电子邮件、订阅) 值(测试、my@email.com、1) 您的 SQL 语法有误;检查与您的MySQL服务器版本相对应的手册,了解在第1行的"Anis,my@email.com,1)"附近使用的正确语法

// Create connection
            $conn = new mysqli($servername, $username, $password, $dbname);
            // Check connection
            if ($conn->connect_error) {
                die("Connection failed: " . $conn->connect_error);
            } 
            $sql = "INSERT INTO ContactUS (name, email, subscribed) VALUES ($name, $email, $subscribed)";
            if ($conn->query($sql) === TRUE) {
                echo "New record created successfully";
            } else {
                echo "Error: " . $sql . "<br>" . $conn->error;
            }

值应用引号引起来:

$sql = "INSERT INTO ContactUS (name, email, subscribed) VALUES ('$name', '$email', '$subscribed')";

也许最好使用预准备语句,因为这会自动为您完成,并且您不会容易受到 SQL 注入的影响。

在变量周围使用引号,因为 PHP 将替换其值,留下无效查询:

 $sql = "INSERT INTO ContactUS (name, email, subscribed) VALUES ('$name', '$email', '$subscribed')";

但请使用预准备语句,否则你将成为SQL注入的受害者