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)
使用转义序列,但这也不起作用.有帮助吗?
不要试图引用自己的东西,使用库.在这种情况下,你想要pg_escape_string.因此,添加百分比包装器然后将其提供给pg_escape_string,然后将其结果放入SQL中.
顺便说一句,在PostgreSQL字符串文字中转义单引号的正确方法是将它加倍,如果你有"it's"一个字符串,那么数据库想要'it''s'在SQL中看到.