поиск:
Полезные ссылки

  • Форум по MySQL

  • Статьи по MySQL

  • Вопросы по MySQL

  • MySQL.com


  • Базы данных

  • MySQL

  • PostgreSQL


  • PHP конференция 2005
    Подробности!

    1.9.4.7. Символы `--' как начало комментария

    В некоторых отличных от MySQL базах данных SQL символы '--' используются как начальные символы комментариев. В сервере MySQL символом начала комментариев является '#'. Для сервера MySQL можно также использовать стиль комментирования из C: /* this is a comment */ (see Раздел 6.1.6, «Синтаксис комментариев»).

    В версии сервера MySQL 3.23.3 и выше поддерживается комментирование с помощью символов '--' - при условии, что за комментарием следует пробел. Это объясняется тем, что данный стиль комментирования вызвал много проблем при автоматической генерации SQL-запросов, в которых присутствовал код, подобный приведенному ниже (величина платежа вставляется в выражение !payment! автоматически):

    UPDATE tbl_name SET credit=credit-!payment!
    

    Давайте представим себе, что произойдет в случае, если величина payment окажется отрицательной. Поскольку выражение 1--1 в SQL является допустимым, то просто страшно себе вообразить последствия в случае, если будут разрешены комментарии, начинающиеся с '--',

    Использование нашей реализации этого метода комментирования в версии сервера MySQL 3.23.3 и выше - в форме 1-- This is a comment - является действительно безопасным.

    Существует еще один безопасный способ решения этой проблемы. Он заключается в том, что клиент командной строки mysql удаляет все строки, начинающиеся с '--'.

    Приведенная ниже информация относится только к работе более ранних, чем 3.23.3, версий MySQL.

    Если ваша SQL-программа представлена в виде текстового файла, содержащего комментарии '--', необходимо использовать:

    shell> replace " --" " #" < text-file-with-funny-comments.sql \
    	| mysql database
    

    вместо обычного:

    shell> mysql database < text-file-with-funny-comments.sql
    

    Можно также отредактировать сам командный файл, заменив комментарии '--' комментариями '#':

    shell> replace " --" " #" -- text-file-with-funny-comments.sql
    

    Привести эти комментарии к первоначальному виду можно с помощью следующей команды:

    shell> replace " #" " --" -- text-file-with-funny-comments.sql
    
     
    © 1997-2005 PHP Club Team
    Rambler's Top100