PHP MySQL 模糊搜索语句运行异常

2015-10-14 16:11:16 +08:00
 razrlele
查询语句:
$query = " select file_id,linenumber, sentence
from Source
where sentence like BINARY '%".$keywords_string."%';" ;
$result = mysql_query($query);
然后取值语句:
while($matches = mysql_fetch_array($result))

在服务器上运行,要么没有结果要么只有两个固定的结果,但是同样的代码,同样的数据库在本地运行查询就很正常,在服务器上面直接在数据库里面执行查询语句返回结果也正常,所以数据库应该没有问题。。。

然后我又尝试在直接赋值$query查询,发现诸如"select * from Source"这种查询语句就很正常,唯独like查询有问题。。。

服务器是 Ubuntu 14.04+mysql Ver 15.1 Distrib 5.5.44-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

本地是 Archlinux + mysql Ver 15.1 Distrib 10.0.21-MariaDB, for Linux (x86_64) using readline 5.1

PHP 的版本服务器上面一开始是 PHP5.5.9 ,本地端是 5.6.14 ,后来把服务器升级到了 PHP5.6.14 一样有问题。。。

请教一下各位 V 友有可能是哪里配置出了问题。。。
1218 次点击
所在节点    问与答
8 条回复
razrlele
2015-10-14 16:51:33 +08:00
问题解决。。。 mysql_query("set name 'utf-8' ");的时候把单引号打成了中文字符。。。
ck65
2015-10-14 16:58:40 +08:00
V2EX 调试法。
kslr
2015-10-14 17:40:08 +08:00
别再拼接 SQL 好么
chineselittleboy
2015-10-14 18:09:13 +08:00
@kslr 应该怎么做 不拼接的话
kslr
2015-10-14 18:13:13 +08:00
@chineselittleboy 比如参数绑定,连注入都解决了,我平时都是直接插入到数据库。
razrlele
2015-10-14 18:32:40 +08:00
@kslr 自学世界上最好的语言不超过七十二个小时。。。只是拿来临时用。。。
kslr
2015-10-14 18:33:46 +08:00
@razrlele 你看的文档太旧了
razrlele
2015-10-14 18:35:59 +08:00
@kslr 嗯。。。这个清楚,只是用来临时交个作业,所以没讲究太多,以后有空还会好好研究一下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/227990

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX