Mysql php数据库插入未按计划工作

Mysql php数据库插入未按计划工作,mysql,Mysql,这段代码抛出了一个我试图排除的错误,但我遗漏了一些东西。自从我写了它,我就忽略了一个语法错误。有什么帮助吗 $kql=" INSERT INTO References (Email, Company1, Person1, Contact1, Company2, Person2, Contact2, Company3, Person3, Contact3, Company4, Person4, Contact4, Company5, Person5, Contact5) VALUES ( '$co

这段代码抛出了一个我试图排除的错误,但我遗漏了一些东西。自从我写了它,我就忽略了一个语法错误。有什么帮助吗

$kql="
INSERT INTO References (Email, Company1, Person1, Contact1, Company2, Person2, Contact2, Company3, Person3, Contact3, Company4, Person4, Contact4, Company5, Person5, Contact5)
VALUES ( '$company44','$Company', '$Person', '$Contact', '$Company1', '$Person1', '$Contact1', '$Company2', '$Person2', '$Contact2', '$Company3', '$Person3', '$Contact3', '$Company4', '$Person4', '$Contact4')";
错误是

错误:您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解使用第1行“参考电子邮件、公司1、个人1、联系人1、公司2、个人2、联系人2、Com”附近的正确语法

引用是用于定义外键的SQL关键字

如果使用SQL关键字命名表/列,则必须将表/列名称包装为特定字符

MySQL

MS SQL

PostgreSQL

关于pgSQL我不确定,有人能证实吗

在这个示例中,只有常识才能阻止您创建一个名为INSERT的数据库,并使用一个表创建一个列VALUE42

此查询可用于:

USE [INSERT]
SELECT [INTO].[VALUE(42)] FROM [INTO]

我认为它抛出了一个错误,因为引用实际上至少是MySQL的一个错误。尝试在表中执行简单的选择,如果错误仍然发生,尝试使用phpMyadmin插入查询,方法是使用虚拟数据替换变量。您使用的是什么DBMS?MySQL,MS SQL?pgSQL?@Swellar它用于MSSQL和pgSQL。请不要通过将字符串连接在一起来创建SQL查询。您应该始终使用参数化查询,否则SQL注入会带来很大的安全风险。此外,使用参数化形式将使代码更加健壮。举个例子,如果一个人是奥勃良先生,他的名字会在他的名字中间关闭你的引号,造成一个新的语法错误。
INSERT INTO [References] (...) ...
INSERT INTO "References" (...) ...
USE [INSERT]
SELECT [INTO].[VALUE(42)] FROM [INTO]