query_string = params[:q]
model.where("name ILIKE ? ", "#{query_string}").limit(10)
在控制器中,我有以上几行
params[:q]
是用户输入。
每当用户输入以\
结尾,例如police \
时,Postgres都会引发此错误:
ActionView::Template::Error (PG::InvalidEscapeSequence: ERROR: LIKE pattern must not end with escape character.
我们如何妥善处理此类案件?
答案 0 :(得分:1)
使用其他转义字符,例如:
WHERE name ILIKE 'pattern\' ESCAPE '/'
如果您没有安全的转义符,则可以将其加倍:
WHERE nane ILIKE replace('pattern\', '\', '\\')