为什么我会收到#1064 - 您的SQL语法出错

时间:2010-02-04 03:18:49

标签: mysql mysql-error-1064

原始查询是:

UPDATE `test`.`documents` SET `title` = ‘测试中文’, `content` = ‘this is my test document number two,应该搜的到吧’ WHERE `documents`.`id` = 2;

导致:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'my test document number two,应该æ

我更改了错误的'

UPDATE 'test'.'documents' SET 'title' = '测试中文', 'content' = 'this is my test document number two,应该搜的到吧' WHERE 'documents'.'id' = 2;

得到了:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''test'.'documents' SET 'title' = '测试中文', 'content' = 'this is my test do' at line 1

如何设置my.ini?

我使用了XAMPP Lite和MySQL版本5.1.37。

5 个答案:

答案 0 :(得分:2)

你正在使用'而不是',(即奇怪的引号)

对于您的新问题,如果要引用表名或列名,则需要使用`s(反引号)而不是'(引号)。

答案 1 :(得分:1)

左右单引号()应替换为普通撇号(')。

或者它被称为直单引号?

答案 2 :(得分:0)

在不知道您使用该SQL语句的确切位置和方式的情况下,我只能猜测它可能是一个编码问题。尝试将编码更改为UTF-8。

答案 3 :(得分:0)

所有mysql表和字段名都应该用反引号转义:` 应该用单引号括起所有mysql字符串:' 试试这个:

UPDATE `test`.`documents` SET `title` = '测试中文', `content` = 'this is my test document number two,应该搜的到吧' WHERE `documents`.`id` = 2;

解决#3: 您需要更改该表的默认字符集:“ALTER TABLE test . documents . CONVERT TO CHARACTER SET utf8;”但要小心,这可能会更改表的存储大小要求,因此如果它很大table,计划查询以执行一些操作。

解决#4: 你应该将以下内容添加到my.ini的[mysqld]部分:

collation_server=utf8_unicode_ci
character_set_server=utf8

答案 4 :(得分:0)

UPDATE test.documents
SET title = '测试中文',
content = 'this is my test document number two,应该搜的到吧'
WHERE documents.id = 2; 

也没关系,同样的问题也是我的3