我有一个可能包含单引号的字段,它用单引号存储在数据库中。例如字段可能是这样的。
1|xyz的 friend |21.3
2|你好,tty的 friend |42.2
用户输入需要显示值的搜索查询。
例如,如果用户输入 --> xyz's 存储在变量 (PHP) 中
我做不到
select * from table where field LIKE '%variable%'
因为变量中已经有引号。并且 postgres 不允许我在 %variable%
周围使用双引号我也试过这样做
select * from table where field LIKE E'%variable%'
使用转义序列,但这也行不通。有帮助吗?
最佳答案
不要尝试自己引用,使用图书馆。在这种情况下,您需要 pg_escape_string
.所以添加百分比包装器,然后将其提供给 pg_escape_string
,然后将其结果放入您的 SQL。
顺便说一句,在 PostgreSQL 字符串文字中转义单引号的正确方法是将其加倍,如果您将 "it's"
作为字符串,那么数据库希望看到 SQL 中的“它”是
。
关于php - 如何从 postgres 数据库中搜索带有单引号的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10545387/