Библиотека `paragonie/easydb` упрощает взаимодействие с базами данных, предоставляя механизмы для предотвращения SQL-инъекций через использование подготовленных выражений (prepared statements). Одной из особенностей подготовленных выражений является автоматическое экранирование специальных символов в данных, включая символ обратного слэша `\`.
Для поиска символа обратного слэша в текстовом поле необходимо сначала понять, как работает экранирование символов в SQL. Символ обратного слэша является специальным символом, который используется для экранирования других специальных символов. Чтобы найти фактический обратный слэш в тексте, нужно перед ним также поставить обратный слэш. То есть, чтобы найти один обратный слэш, вы должны использовать два обратных слэша в строке запроса (`\\`).
Однако, когда вы используете подготовленные выражения, символы экранирования обрабатываются дважды: сначала в самом запросе, а затем в самом подготовленном выражении, так что вам фактически нужно отправить четыре обратных слэша (`\\\\`), чтобы получить один в запросе.
Пример использования `paragonie/easydb` для поиска текстового поля, содержащего символ обратного слэша `\`:
```php
$db = \ParagonIE\EasyDB\Factory::create(
'mysql:host=localhost;dbname=test',
'username',
'password'
);
// Поиск строки, содержащей обратный слэш
$results = $db->run(
"SELECT * FROM table WHERE text_column LIKE ?",
"%\\\\%" // Это будет передано SQL как %\\%, что ищет один обратный слэш
);
foreach ($results as $row) {
print_r($row);
}
```
Обратите внимание на использование в запросе строки `"%\\\\%"`, которая указывает, что мы ищем процент, затем два символа обратного слэша (для экранирования одного обратного слэша в контексте SQL), затем снова процент.
Если вы сталкиваетесь с тем, что `paragonie/easydb` не работает как ожидаются с литералами содержащими обратные слэши, убедитесь, что вы правильно экранируете символы и используете соответствующую строку запроса в вашем PHP коде.