Экранирование спецсимволов в SQL запросах


Опубликовано 24.01.2020


Обычно для экранирования спецсимволов в SQL-запросах используется символ обратной косой черты. Но символ апострофа можно экранировать вторым символом апострофа. Другими словами два символа апострофа подряд считаются одним экранированным апострофом. Примеры для MySQL:

INSERT INTO `text_table`(`text`) VALUES ('as''df');

Стандартный способ экранирования:

INSERT INTO `text_table`(`text`) VALUES ('as\'df');

Экранирование слеша:

INSERT INTO `text_table`(`text`) VALUES ('as\\df');

А вот экранировать слеш при помощи апострофа нельзя, такой запрос не сработает:

INSERT INTO `text_table`(`text`) VALUES ('as'\df');

В новых версиях Postgresql апостроф нельзя экранировать при помощи обратной косой черты.

При использовании SQL-запросов из программного кода лучше всего полагаться на подготовленные запросы. Это не только позволяет избавиться от мороки с экранированием символов но и защищает от SQL-инъекций.

 

 

 

 

 

 

 

 

 

 


Объявление
Stand with Ukraine!