我在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注入的受害者