Почему я получаю # 1064 - у вас ошибка в синтаксисе SQL - PullRequest
0 голосов
/ 04 февраля 2010

Исходный запрос был:

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 ]

2 голосов
/ 04 февраля 2010

Вы используете 'вместо' (то есть странные кавычки)

Для вашей новой задачи вам нужно использовать `(обратные метки) вместо '(кавычки), если вы хотите заключить в кавычки имя таблицы или столбца.

1 голос
/ 04 февраля 2010

Левые и правые одинарные кавычки ( и ) должны быть заменены обычным апострофом (').

Или это называется прямая одинарная кавычка?

0 голосов
/ 04 февраля 2010
UPDATE test.documents
SET title = '测试中文',
content = 'this is my test document number two,应该搜的到吧'
WHERE documents.id = 2; 

тоже нормально, и тот же вопрос тоже мой 3

0 голосов
/ 04 февраля 2010

все имена таблиц и полей 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;" Будьте осторожны, это может изменить требования к размеру хранилища таблицы, поэтому, если это большая таблица, спланируйте запрос чтобы выполнить немного.

по адресу № 4: Вы должны добавить следующее в раздел [mysqld] my.ini:

collation_server=utf8_unicode_ci
character_set_server=utf8
0 голосов
/ 04 февраля 2010

Не зная точно, где и как вы используете этот оператор SQL, я могу только догадываться, что это может быть проблемой кодирования. Попробуйте изменить кодировку на UTF-8.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...