Схвалено кращими російськими програмістами 1

6.1.1.1 Рядок

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

Усередині рядка деякі послідовності символів мають спеціальне призначення. Кожна з цих послідовностей починається зворотним слешем ( `\ '), відомим як escape-символ або символ переходу. MySQL розпізнає наступні escape-послідовності:

\ 0 Символ 0 (NUL) в ASCII коді. \ 'Символ одиночної лапки ( `' '). "Символ подвійної лапки (` " '). \ B Повернення на один символ. \ N Символ нового рядка (переведення рядка). \ R Символ перекладу каретки. \ T Символ табуляції. \ Z Символ (Control-Z) таблиці ASCII (26). Даний символ можна закодувати, щоб обійти проблему, яка полягає в тому, що під Windows ASCII (26) означає кінець файлу (проблеми виникають при використанні ASCII (26) в вираженні mysql database

Зверніть увагу на те, що при використанні `\% 'або` \ _' в контекстах деяких рядків будуть повертатися значення рядків `\% 'і` \ _'. а не `% 'і' _ '.

Існує кілька способів включити лапки в рядок:

  • Одиночна лапки (апостроф) ` '' всередині рядка, укладеної в лапки` ''. може бути записана як ` '' '.
  • Лапки `" 'всередині рядка, укладеної в подвійні лапки `"'. може бути записана як `" " '.
  • Можна випередити символ лапки символом екранування ( `\ ').
  • Для символу ` '' всередині рядка, укладеної в подвійні лапки, не потрібно спеціальної обробки; його також не потрібно дублювати або випереджати зворотним слешем. Точно так само не вимагає спеціальної обробки лапки `" 'всередині рядка, укладеної в поодинокі лапки `' '.

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

Якщо необхідно вставити в рядок двійкові дані (такі як BLOB), такі символи повинні бути представлені як escape-послідовності:

NUL ASCII 0. Необхідно представляти в вигляді `\ 0 '(зворотний слеш і символ ASCII` 0'). \ ASCII 92, зворотний слеш. Звісно ж як `\\ '. 'ASCII 39, одинична лапка. Звісно ж як `\ ''. "ASCII 34, лапки. Видається як` " '.

При написанні програми на мові C для додавання символів екранування в команді INSERT можна використовувати функцію mysql_real_escape_string () з C API (see section 8.4.2 Огляд функцій інтерфейсу C). При програмуванні на Perl можна використовувати метод quote з пакета DBI для перетворення спеціальних символів у відповідні escape-послідовності (see section 8.2.2 Інтерфейс DBI).

Не слід забувати, що вказане властивість escape-символа має використовуватися у всіх рядках, які можуть містити будь-які спеціальні символи, перераховані вище.

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

Схожі статті