П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 3524 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 6122 раз(а).

Учебник HTML.
Просмотров 3276 раз(а).

Руководство по PHP5.
Просмотров 5499 раз(а).

Хостинг через призму DNS.
Просмотров 4148 раз(а).

Подборка текстов стандартных документов.
Просмотров 55773 раз(а).

Учебник PHP - Самоучитель
Просмотров 3093 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 5751 раз(а).

Внешние атаки...
Просмотров 3843 раз(а).

Учебник PHP.
Просмотров 2826 раз(а).

SSI в примерах.
Просмотров 37463 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





Глава 6. Справочник по языку MySQL
Пред.     След.

6.1. Структура языка
6.1.1. Литералы: представление строк и чисел

6.1.1.1. Cтроки

Строка представляет собой последовательность символов, заключенных либо в одинарные кавычки ("'") - апострофы, либо в двойные кавычки ('"'). При использовании диалекта ANSI SQL допустимы только одинарные кавычки. Например:

'a string'
"another string"

Внутри строки некоторые последовательности символов имеют специальное назначение. Каждая из этих последовательностей начинается обратным слешем ("\"), известным как escape-символ или символ перехода. MySQL распознает следующие escape-последовательности:

  • \0

    Символ 0 (NUL) в ASCII коде.

  • \'

    Символ одиночной кавычки ("'").

  • \"

    Символ двойной кавычки (""").

  • \b

    Возврат на один символ.

  • \n

    Символ новой строки (перевода строки).

  • \r

    Символ перевода каретки.

  • \t

    Символ табуляции.

  • \z

    Символ (Control-Z) таблицы ASCII(26). Данный символ можно закодировать, чтобы обойти проблему, заключающуюся в том, что под Windows ASCII(26) означает конец файла (проблемы возникают при использовании ASCII(26) в выражении mysql database < filename).

  • \\

    Символ обратного слеша.

  • \%

    Символ процентов "%". Используется для поиска копий литерала "%" в контекстах, где выражение "%" в противном случае интерпретировалось бы как групповой символ (see Раздел 6.3.2.1, «Функции сравнения строк»).

  • \'_'

    Символ подчеркивания "_". Используется для поиска копий литерала "_" в контекстах, где выражение "_" в противном случае интерпретировалось бы как групповой символ (see Раздел 6.3.2.1, «Функции сравнения строк»).

Обратите внимание на то, что при использовании '\%' или '\_' в контекстах некоторых строк будут возвращаться значения строк '\%' и '\_', а не "%" и "_".

Существует несколько способов включить кавычки в строку:

  • Одиночная кавычка (апостроф) "'" внутри строки, заключенной в кавычки "'", может быть записана как '"'.

  • Двойная кавычка """ внутри строки, заключенной в двойные кавычки """, может быть записана как '""'.

  • Можно предварить символ кавычки символом экранирования ("\").

  • Для символа "'" внутри строки, заключенной в двойные кавычки, не требуется специальной обработки; его также не требуется дублировать или предварять обратным слешем. Точно так же не требует специальной обработки двойная кавычка """ внутри строки, заключенной в одиночные кавычки "'".

Ниже показаны возможные варианты применения кавычек и escape-символа на примерах выполнения команды SELECT:

mysql> SELECT 'hello', '"hello"', '""hello""', 'hel"lo', '\'hello';
+-------+---------+-----------+--------+--------+
| hello | "hello" | ""hello"" | hel'lo | 'hello |
+-------+---------+-----------+--------+--------+

mysql> SELECT "hello", "'hello'", ""hello"", "hel""lo", "\"hello";
+-------+---------+-----------+--------+--------+
| hello | 'hello' | "hello" | hel"lo | "hello |
+-------+---------+-----------+--------+--------+

mysql> SELECT "This\nIs\nFour\nlines";
+--------------------+
| This
Is
Four
lines |
+--------------------+

Если необходимо вставить в строку двоичные данные (такие как BLOB), следующие символы должны быть представлены как escape-последовательности:

  • NUL

    ASCII 0. Необходимо представлять в виде '\0' (обратный слеш и символ ASCII "0").

  • \

    ASCII 92, обратный слеш. Представляется как '\\'.

  • '

    ASCII 39, единичная кавычка. Представляется как '\''.

  • "

    ASCII 34, двойная кавычка. Представляется как '\"'.

При написании программы на языке C для добавления символов экранирования в команде INSERT можно использовать функцию mysql_real_escape_string() из C API (see Раздел 8.4.2, «Обзор функций интерфейса C»). При программировании на Perl можно использовать метод quote из пакета DBI для превращения специальных символов в соответствующие escape-последовательности (see Раздел 8.2.2, «Интерфейс DBI»).

Не следует забывать, что указанное свойство escape-символа должно использоваться во всех строках, которые могут содержать любые специальные символы, перечисленные выше.

В качестве альтернативы многие интерфейсы прикладного программирования (API) для MySQL предоставляют определенную возможность использования символов-заменителей, что позволяет вносить специальные маркеры в строку запроса и затем связывать с ними значения данных при выдаче результатов запроса.


Назад Начало Главы Начало Раздела Начало Подраздела Вперед

Пред. Глава След. Глава
Глава 5. Оптимизация в MySQL Начало Книги Глава 7. Типы таблиц MySQL


Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru