如何使用postgres db中的单引号搜索字段?

pog*_*ogo 2 php database postgresql

我有一个可能包含单引号的字段,它使用单引号存储在数据库中.例如,字段可能是这样的.

1 | xyz的朋友| 21.3

2 |你好,tty的朋友| 42.2

用户输入搜索查询,基于该搜索查询需要显示值.

例如,如果用户输入 - > xyz,它存储在变量(PHP)中

我做不到

select * from table where field LIKE '%variable%' 
Run Code Online (Sandbox Code Playgroud)

因为变量已经有引号.和postgres不允许我在%变量%周围使用双引号

我也尝试过做这样的事情

select * from table where field LIKE E'%variable%' 
Run Code Online (Sandbox Code Playgroud)

使用转义序列,但这也不起作用.有帮助吗?

mu *_*ort 7

不要试图引用自己的东西,使用库.在这种情况下,你想要pg_escape_string.因此,添加百分比包装器然后将其提供给pg_escape_string,然后将其结果放入SQL中.

顺便说一句,在PostgreSQL字符串文字中转义单引号的正确方法是将它加倍,如果你有"it's"一个字符串,那么数据库想要'it''s'在SQL中看到.