以下查询不会返回任何结果
$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'.'%';
则可以
答案 0 :(得分:0)
首先,您不需要urldecode
。删除它,因为它可能会破坏你的头衔。
其次,请注意,根据您的整理,您的Like可能区分大小写。
第三......你说$_GET['dc']
包含'发言者'。你确定吗?您是否尝试过echo htmlspecialchars($_GET['dc']);
来确定?
最后......当你使用Speak
...而不是Speakers
时,你说它有用了......这是什么?如果您使用%Speakers%
或%Speak%
进行搜索,则无关紧要。
编辑同时尝试修剪标题以删除前导和尾随空格。因此,请尝试将$title = urldecode($_GET['dc']);
更改为$title = trim($_GET['dc']);