2015-01-23 2 views
-1

я не спал, как долго и надеялся, что кто-то может помочь мне исправить этот запрос, прежде чем я пойтиSQL-запрос не работает не знаю, почему

UPDATE Patrons SET name="Paul Mafinger", ADdress="88 Crazy Street", [Phone(H)]="24767536", hone(M)="6345735467", HomeBranch="Manly", Classification="Adult" WHERE MemberID="3973-6726-6813-1091" 

и ошибку

# 1064 - У вас есть ошибка в синтаксисе SQL; проверьте руководство, которое соответствует версии сервера MySQL для корректного синтаксиса использовать вблизи 'Phone(H)="24767536", hone(M)="6345735467", HomeBranch="Manly", Classificatio' в строке 1

ответ

1

Символ escape-кода MySQL - это обратная цитата, а не квадратные скобки. Также используйте одиночные кавычки для строк. Двойные кавычки могут запутаться с именами столбцов:

UPDATE Patrons 
    SET name = 'Paul Mafinger', 
     Address = '88 Crazy Street', 
     `Phone(H)` = '24767536', 
     `phone(M)` = '6345735467', 
     HomeBranch = 'Manly', 
     Classification = 'Adult' 
    WHERE MemberID = '3973-6726-6813-1091'; 

Я бы рекомендовал вам назвать столбцы с «нормальными» персонажами, поэтому они даже не должны быть экранированы. Что-то вроде HomePhone и MobilePhone.

+0

Является ли это злонамеренным нисходящим или я что-то пропустил? –

+0

спасибо, что я обычно это делал для задания, потому что я не использовал двойные кавычки, потому что он был в java, и по привычке я использовал двойные кавычки. Изменил это за это – Paul

+0

@Paul. , , Работает двойная кавычка. Просто они могут вести себя неожиданно, потому что строка сначала интерпретируется как столбец, а затем как константа. Это приводит к проблемам с кодом - проблемы, которых можно избежать, используя одиночные кавычки (стандартный разделитель ANSI для строк). –

0

Появляется, как будто это должно быть:

UPDATE Patrons SET name='Paul Mafinger', ADdress='88 Crazy Street', `[Phone(H)]`='24767536', hone(M)='6345735467', HomeBranch='Manly', Classification='Adult' WHERE MemberID='3973-6726-6813-1091' 

Ваш телефон запись имеет символы, которые используются в SQL, и поэтому вы можете сообщить SQL, что это идентификатор, окружив его символами.

[Phone(H)]='24767536'

был изменен на:

`[Phone(H)]`='24767536' 

Вы можете увидеть, как [Phone(H)=] является eclosed с `` символов Следует также отметить, что в SQL, вы должны использовать одиночные кавычки, а не двойные кавычки для задания значений String.

Смежные вопросы