当使用数字作为模式时,我正在经历来自查询的意外结果。该查询如下所示:
SELECT Code FROM table WHERE Code LIKE '%xxx%' 当xxx是字母时,一切都很好,但是当它们是数字时,远程PHP返回的查询是错误的。似乎起始%nn被解释为ASCII代码。
示例:
SELECT Code FROM table WHERE Code LIKE '%26F%' 返回为:从表中选择代码,其中代码为'&F%‘
Javascript代码示例:
find = "26F";
srch = "Code LIKE '%" + find + "%'";
url: "load_searched_record.php?target="+srch;
...PHP简化代码:
$target = $_GET['target'];
echo $target;由于我删除了所有用于测试的MySql代码,只留下了上面的2行,很明显,问题源于PHP,但是为什么呢?
我应该以同样的方式编码查询吗?如果是,怎么做?谢谢
请注意,PHP文件是UTF-8编码的.
发布于 2015-10-05 21:04:24
这是因为您未能正确地对要放入查询字符串的值进行URL编码,…(这不是PHP的错。)
在将其附加到URL之前,需要对值使用encodeURIComponent:
"load_searched_record.php?target="+encodeURIComponent(srch)
https://stackoverflow.com/questions/32957807
复制相似问题