我有一个可能包含单引号的字段,它与单引号一起存储在数据库中。例如,字段可能是这样的。
1 XYZ的朋友21.3
2你好,TTY的朋友42.2
用户根据需要显示的值输入搜索查询。
例如,如果用户输入-->xyz,它存储在变量(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中看到'it''s'

关于php - 如何从Postgres数据库中搜索单引号的字段?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10545387/

10-15 20:31