INSERT INTO homework_MarcWed30-2011 ('Teacher', 'Class', 'Period', 'Assn')
VALUES ('a', 'a', 'a', 'a')
我收到以下错误:
您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在'-2011(教师varchar(30),Class varchar(30),Period varchar(30),Assn varchar('at line 1
)附近使用正确的语法
发生了什么事?
在旁注中,create table语句对我不起作用:
mysql_query("CREATE TABLE homework_MarcWed30-2011 (Teacher varchar(30), Class varchar(30), Period varchar(30), Assn varchar(400))","mysql_connect('#####', '#####', '#####')") OR die(mysql_error());
答案 0 :(得分:1)
使用
`homework_MarcWed30-2011`
在表名中并使用`来引用列名
INSERT INTO homework_MarcWed30-2011 (`Teacher`, `Class`, `Period`, `Assn`)
VALUES ('a', 'a', 'a', 'a')
可以引用标识符或 不带引号的。如果标识符包含 特殊字符或是保留的 一句话,你必须随时引用它 参考它。一组字母数字 当前角色的字符 设置,“_”和“$”并不特殊。
答案 1 :(得分:0)
尝试此查询
INSERT INTO `homework_marcwed30-2011` (`Teacher` ,`Class` ,`Period` ,`Assn`) VALUES ('a', 'a', 'a', 'a');
变体,没有字段引号
INSERT INTO `homework_marcwed30-2011` (Teacher ,Class ,Period ,Assn)
VALUES ('a', 'a', 'a', 'a')
变体,没有字段定义
INSERT INTO `homework_marcwed30-2011` VALUES ('a', 'a', 'a', 'a')
表格创建部分
mysql_query("CREATE TABLE `homework_MarcWed30-2011` (Teacher varchar(30) NOT NULL, Class varchar(30) NOT NULL, Period varchar(30) NOT NULL, Assn varchar(400) NOT NULL);","mysql_connect('#####', '#####', '#####')") OR die(mysql_error());
您的错误是您没有定义是否允许Null。
答案 2 :(得分:0)
列名应该没有引号,它们可以被后引号``包围,但不能用单引号或双引号包围。
INSERT INTO `homework_MarcWed30-2011` (`Teacher`, `Class`, `Period`, `Assn`)
VALUES ('a', 'a', 'a', 'a')
如果有 - 在表名中你仍然可以使用后面引号``。
中的周围名称答案 3 :(得分:0)
首先,我认为你不能在表名中加上“ - ”。不确定那个,但这是基于近'-2011'评论的建议。 (或如上所述,通过反引号包围它)......这是更好的选择!)
其次,第二个会死,因为你有一个PHP语法错误:
mysql_query(""...", "mysql_connect(...)") OR die(msyql_error());
第一个参数有两个开头的引号:表示字符串已经开始和结束。删除一个。
如果我没有查阅文档,我相信第二个参数需要资源,如果我没记错的话。你发送一个字符串。尝试删除引号。
答案 4 :(得分:0)
您不能在表名中使用短划线作为裸字符串。相反,如果您使用下划线,它将正常工作:
mysql> CREATE TABLE homework_MarcWed30_2011 (Teacher varchar(30), Class varchar(30), Period varchar(30), Assn varchar(400));
Query OK, 0 rows affected (0.09 sec)
在insert语句中,您不能使用引号作为列名,如果要插入所有列,则根本不需要列出它们:
mysql> INSERT INTO homework_MarcWed30_2011 VALUES ('a', 'a', 'a', 'a');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO homework_MarcWed30_2011 (Teacher, Class, Period, Assn) VALUES ('b', 'b', 'b', 'b')
答案 5 :(得分:0)
答案太多,而不是单一的答案
反击会做魔术
INSERT INTO `homework_MarcWed30-2011` (`Teacher`, `Class`, `Period`, `Assn`)
VALUES ('a', 'a', 'a', 'a')
但是,作为一般规则,请提供您的标识符不那么花哨但明智的名称
CREATE TABLE homework (
teacher varchar(30),
class varchar(30),
period varchar(30),
assn text
)
将它们保持为小写字母小写将为您节省很多麻烦