当使用数字作为模式时,我遇到了来自查询的意外结果.查询如下所示:
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编码的.
那是因为您无法对正在放入查询字符串的值进行URL编码...(这不是PHP的错误.)
encodeURIComponent在将值附加到URL之前,您需要使用该值:
"load_searched_record.php?target="+encodeURIComponent(srch)
| 归档时间: |
|
| 查看次数: |
72 次 |
| 最近记录: |