Php 在表中插入SQL时出错

Php 在表中插入SQL时出错,php,mysql,Php,Mysql,我在php中不断遇到这个错误。当我硬设置值时,它工作得很好,但似乎无法处理变量 错误:在ContactUS(姓名、电子邮件、订阅)中插入值(测试、,my@email.com, 1) 您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解使用near'Anis的正确语法,my@email.com,1)“在第1行 //创建连接 $conn=newmysqli($servername、$username、$password、$dbname); //检查连接 如果($conn->conne

我在php中不断遇到这个错误。当我硬设置值时,它工作得很好,但似乎无法处理变量

错误:在ContactUS(姓名、电子邮件、订阅)中插入值(测试、,my@email.com, 1) 您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解使用near'Anis的正确语法,my@email.com,1)“在第1行

//创建连接
$conn=newmysqli($servername、$username、$password、$dbname);
//检查连接
如果($conn->connect\u错误){
die(“连接失败:”.$conn->connect\U错误);
} 
$sql=“将($name,$email,$subscribed)值插入ContactUS(姓名、电子邮件、订阅)中”;
if($conn->query($sql)==TRUE){
echo“新记录创建成功”;
}否则{
echo“Error:”.$sql.“
”$conn->Error; }
应引用以下值:

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

也许最好使用预先准备好的语句,因为这是为您自动完成的,您不会受到攻击。

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

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

但是请使用预先准备好的语句,否则您将成为SQL注入值(“$name”、“$email”、“$subscribed”)的受害者

,但这将使SQL注入成为可能。阅读此内容。您的答案应该说明您的更改内容,以便OP在将来了解问题。您应该将第二句改为
最好使用准备好的语句,因为这是自动完成的,并且您不会接受SQL注入。
啊,谢谢,我假设它们是变量,不需要引号。
 $sql = "INSERT INTO ContactUS (name, email, subscribed) VALUES ('$name', '$email', '$subscribed')";