Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql插入错误。。。不确定是什么';这是不对的_Mysql_Insert_Phpmyadmin - Fatal编程技术网

mysql插入错误。。。不确定是什么';这是不对的

mysql插入错误。。。不确定是什么';这是不对的,mysql,insert,phpmyadmin,Mysql,Insert,Phpmyadmin,我不明白这为什么不起作用。使用mysql版本5.0.91-log。和phpMyAdmin INSERT INTO 'sequences'( 'key', 'author', 'tlength', 'progress', 'time') VALUES ( NULL , '00000', 10, 1, NULL ) 获取以下错误 您的SQL语法有错误;查看与您的MySQL>服务器版本对应的手册,以了解可在“序列”附近使用的正确语法( “键”、“作者”、“长度”、“进度”、“时间”) 价值观( 第

我不明白这为什么不起作用。使用mysql版本5.0.91-log。和phpMyAdmin

INSERT INTO 'sequences'(
'key', 'author', 'tlength', 'progress', 'time')
VALUES (
NULL , '00000', 10, 1, NULL
) 
获取以下错误

您的SQL语法有错误;查看与您的MySQL>服务器版本对应的手册,以了解可在“序列”附近使用的正确语法( “键”、“作者”、“长度”、“进度”、“时间”) 价值观( 第1行为空

这是表(名称、类型、属性、null、默认值、额外值)

键int(11)无符号无自动增量 作者char(20)No t长度tinyint(3)未签名的编号 进度提示(4)未签名的编号0 时间戳是当前时间戳
我尝试了以上查询的多种组合,包括/不包括引号和其他变体。有什么想法吗?

默认情况下,不应将表名加引号。请尝试:

INSERT INTO sequences (
    'key', 'author', 'tlength', 'progress', 'time')
VALUES (
    NULL , '00000', 10, 1, NULL
) 

将表名和列名的引号替换为反勾号:

INSERT
INTO    `sequences` (`key`, `author`, `tlength`, `progress`, `time`)
VALUES  (NULL, '00000', 10, 1, NULL) 
两件事:

  • 不要引用表名或字段
  • “Key”在MySQL中是一个保留字,因此您需要用反勾号将该字段名括起来
这将为您提供:

INSERT INTO sequences (
`key`, author, tlength, progress, time)
VALUES (
NULL , '00000', 10, 1, NULL
) 

为了以防万一,引用所有字段名和表名通常更容易,但下面是一个完整的保留字列表,其中包含了所有保留字:

在大多数其他语言中,引号用作字符串分隔符,因此解释器可以区分关键字和文字。只需运行此查询即可查看区别:

>
SELECT 'CURRENT_TIMESTAMP', CURRENT_TIMESTAMP
如果您引用表名和列名,您就是在告诉MySQL它们不是数据库对象

此外,您还有一个名为
key
的列。在MySQL中,这是一个保留字,您需要对其进行转义。MySQL在这种情况下使用的语法是后引号:


最后但并非最不重要的一点是,如果您将
键定义为
非NULL
,则不能在
列中插入NULL。这就是
非NULL
的意思。

正如我所说的,列名中不应该有引号……我尝试过使用引号和不使用引号。我仍然得到一个错误,代码摘录和行号有所不同。@Victor当您尝试不带引号的时候,您能给我们错误消息吗?
SELECT 'CURRENT_TIMESTAMP', CURRENT_TIMESTAMP
INSERT INTO sequences (`key`, author, tlength, progress, time)
VALUES (NULL , '00000', 10, 1, NULL)