带有数字的MySQL LIKE子句因PHP而失败

Ori*_*nis 2 php mysql

当使用数字作为模式时,我遇到了来自查询的意外结果.查询如下所示:

SELECT Code FROM table WHERE Code LIKE '%xxx%'  
Run Code Online (Sandbox Code Playgroud)

当xxx是字母时,一切都很好,但当它们是数字时,远程PHP返回的查询是错误的.好像起始%nn被解释为ASCII码.

例:

SELECT Code FROM table WHERE Code LIKE '%26F%'  
Run Code Online (Sandbox Code Playgroud)

返回为:SELECT Code FROM table WHERE Code LIKE'&F%'

Javascript代码示例:

find = "26F";
srch = "Code LIKE '%" + find + "%'";
url: "load_searched_record.php?target="+srch;
...
Run Code Online (Sandbox Code Playgroud)

PHP简化代码:

$target = $_GET['target'];
echo $target;
Run Code Online (Sandbox Code Playgroud)

由于我删除了所有用于测试的MySql代码,只留下了上面的2行,很明显这个问题起源于PHP,但为什么呢?
我应该以相同的方式编码查询吗?如果有,怎么样?谢谢

请注意PHP文件是UTF-8编码的.

CBr*_*roe 7

那是因为您无法对正在放入查询字符串的值进行URL编码...(这不是PHP的错误.)

encodeURIComponent在将值附加到URL之前,您需要使用该值:

"load_searched_record.php?target="+encodeURIComponent(srch)