Pull to refresh

Интересное поведение lib_mysqludf_preg

Reading time1 min
Views604
Существует сторонняя библиотека для MySQL которая дает возможность использовать PCRE в этом самом MySQL. Находится она вот по этому адресу mysqludf.com/lib_mysqludf_preg

Описывать ее функции я не буду, остановлюсь лишь на одном интересном моменте, который заставил потратить около 30 минут на поиск проблем.

Д опустим у Вас есть некий проект который делает выборки из базы при помощи PREG_CAPTURE, где регулярным выражением является значение в колонке базы, а строкой для проверки некая строка, подставляемая в запрос.

Итого запрос выглядит так:

SELECT something FROM table1 WHERE NOT ISNULL(CONCAT('/',`field1`,'/'),'somemystring')

Работает он прекрасно, выдает данные или не выдает. До того момента как в одном из значений field1 не появится синтаксически не верное и некомпилируемое регулярное выражение.

Пример такого выражения: *something_regexp

Тогда функция PREG_CAPTURE не выдает никаких ошибок, просто ничего не возвращает в ответ, как будто совпадений не было вообще по всем значениям регулярных выражений, а не только по некорректному.

Возможно разработчик библиотеки так и задумывал ее работу, но это доставляет определенные проблемы. Просто будьте осторожны.
Tags:
Hubs:
Total votes 1: ↑1 and ↓0+1
Comments0

Articles