以下查询不返回任何结果,
$title = urldecode($_GET['dc']);//contains Speakers
$r = '%'.$title.'%';
$stmt = $mydb->prepare(" SELECT * from table where title LIKE ?");
echo $mydb->error;
$stmt->bind_param('s', $r );
$stmt->execute();
但如果我把$r
改成'%'.'Speak'.'%';
,它就可以工作
我做错了什么?
首先,您不需要urldecode
。删除它,因为它可能会破坏你的标题。
其次,请注意,根据您的整理,您的Like可能区分大小写。
第三。。。您说$_GET['dc']
包含"扬声器"。你确定吗?你试过做echo htmlspecialchars($_GET['dc']);
来确定吗?
最后。。。后来你说它有效,当你使用Speak
。。。不是Speakers
。。。是哪一个?如果您使用%Speakers%
或%Speak%
进行搜索,这当然很重要。
编辑同时尝试修剪标题以删除前导空格和尾部空格。因此,尝试将$title = urldecode($_GET['dc']);
更改为$title = trim($_GET['dc']);