在我的PHP-Codeigniter function()中,我给出了以下命令:
function get_cust($search='David')
{
$query = 'select pp.first_name from Cust pp where';
$query .= ' pp.first_name LIKE "%'.escape_like_str($search).'%")';
print_r(mysql_real_escape_string($query));
}
但是当我在浏览器中执行输出时:
select pp.first_name from Cust pp where pp.first_name LIKE 'Úvid%'
反正还是这样,我可以得到它:
select pp.first_name from Cust pp where pp.first_name LIKE '%David%'
我也尝试过使用addslashes()
,mysql_real_escape_string()
。有谁知道如何将'Úvid%'
更改为'%David%'
我在本地计算机上使用PHP 5.4,所以无法使用mysqli
。
答案 0 :(得分:1)
您的代码一切都很好。 %Da
是html entity。
Ú%DAÚ大写U,重音
因此,这只是输出数据的问题,在内部您的查询文本是正确。尝试使用另一个字符串作为搜索请求,而不以Da
开头,或者仅执行mysql查询并查看其结果。
答案 1 :(得分:0)
我建议在Codeigniter中使用查询生成器。您可以找到documentation of like here。看起来像这样:
-XX:MaxMetaspaceSize=3200m