我是php和sql的新手,所以你能告诉我如何修复这个sql错误,请帮助我。 sql在下面。
INSERT INTO xml-group (id,groupid,name,descriptor,cust_id)
VALUES (1,1,'other contacts','other contacts',16)
错误是:
您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 '-group(id,groupid,name,descriptor,cust_id)VALUES附近 ('0','0','手机','手机',1'在第1行
非常感谢
答案 0 :(得分:5)
不带引号的表名中不允许-
。使用反引号来引用xml-group
:
INSERT INTO `xml-group` (id,groupid,name,descriptor,cust_id)
VALUES (1,1,'other contacts','other contacts',16)
顺便说一下,在设计良好的数据库模式中,您可以避免使用此类名称,而是使用_
。
答案 1 :(得分:2)
使用反引号arround表名,它会导致GROUP成为mysql的特殊关键字
INSERT INTO `xml-group` (id,groupid,name,descriptor,cust_id)
VALUES (1,1,'other contacts','other contacts',16)
答案 2 :(得分:0)
此外,如果字段ID是自动编号字段,则已分配主索引和“1”,您将收到错误。 (与需要唯一值的任何其他字段相同...)
答案 3 :(得分:0)
“ - ”SQL语法中不允许使用连字符。 使用反引号(`)符号来逃避它。
答案 4 :(得分:0)
修复它的两个选项:
就我个人而言,我会做上述两种选择,但你可以只使用一种。
出于几个原因,您最好强制使用后退。我自己反复使用的主要原因是:
其他原因,但通常取决于您/可以在整个代码库上执行的个人偏好和编码标准:
SELECT user FROM users
,你很可能有方法名,变量,注释等都包含“user”这个词,这使得很难找到包含对用户表的引用的所有查询阳性。但是,如果你强制使用后退标记,你只需要搜索`users`来查找引用它的所有查询以及字段(只要你没有将查询抽象到它们在运行时构建的那些点,就像:“SELECT` $ field` FROM` $ table`”)。