Я пишу приложение на R, которое выполняет параметризованные запросы и отправляет их в базу данных, чтобы вернуть соответствующую информацию в таблицу данных в приложении. Из-за характера поискового запроса мне нужно использовать SQL-термин LIKE
со знаком% вокруг поискового запроса. И чтобы защитить базу данных от внедрения SQL, мне нужно использовать функцию sqlInterpolate
. Но у меня возникают проблемы с тем, как функция sqlInterpolate
выполняет запрос.
Прямо сейчас, когда я захожу в консоль R, это работает:
> sql <- sqlInterpolate(conn, "SELECT * FROM table WHERE Column1 LIKE '%000g7%'")
> dbGetQuery(conn, sql)
Но этоне,
> str <- "000g7"
> sql <- sqlInterpolate(conn, "SELECT * FROM table WHERE Column1 LIKE '%?search%'", search = str)
> dbGetQuery(conn, sql)
, он просто возвращает пустой список. Если бы я мог получить некоторую помощь с синтаксисом запроса, я был бы очень признателен. Я почти уверен, что это как-то связано с апострофами или чем-то в этом роде. Или, если есть лучший способ сделать это, я весь слух.