PHP скрипты

MySQL

Apache

phpMyADmin

3.1: Строки в MySQL

Главная Страница » Книги по PHP » MySQL уроки для начинающих с нуля » Строки в MySQL

Строка представляет собой последовательность символов, окруженных одиночными (") или двойными кавычками («). Примеры:

"a string"
"another string"

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

Таблица 3.1. Перечень управляющих последовательностей.

\0 Символ с кодом ASCII О (NUL)
\ Символ одиночной кавычки (")
Символ двойной кавычки («)
\b Символ backspace
\n Символ новой строки
\r Символ возврата каретки
\t Символ табуляции
\z Символ с кодом 26, то есть ASCII(26), он же Control-Z. Этот символ может быть закодирован, чтобы позволить вам обойти проблему восприятия ASCII(26) как символа конца файла под Windows. ASCII(26) вызовет проблемы, если вы попробуете использовать команду mysql database < filename
\\ Символ backslash (\).
\% Символ %. Это используется, чтобы искать литеральные образцы % в контекстах, где % иначе интерпретировался бы как групповой символ (шаблон).
\_ Символ _. Это используется, чтобы искать литеральные образцы _ в контекстах, где _ иначе интерпретировался бы как групповой символ (шаблон).

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

Включить кавычки в строку можно несколькими способами:

  • " внутри строки, ограниченной ", может быть написано как ""
  • "«" внутри строки, ограниченной «, может быть написано как «»
  • вы можете предварить кавычку символом \
  • " внутри строки, ограниченной «, не требует специальной обработки или экранировки. Таким же образом, « внутри строки, ограниченной ", этого тоже не требует.

Инструкции 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
liner  |
+------+

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

  • NUL (ASCII 0). Вы должны представить это как \0;
  • \ (ASCII 92), backslash. Представьте это как \\;
  • " (ASCII 39), одиночная кавычка. Представьте это как \";
  • « (ASCII 34), двойная кавычка. Представьте это как \».

Поделиться с друзьями