0

我的 php/MySQL 搜索查询没有返回错误,也没有显示来自 MySQL 表的结果。例如,我有 6 行,每列包含 3-5 个单词(以逗号分隔)。如果用户键入与特定列匹配的某个单词,它应该只拉出并显示该行/那些行。有人能指出我正确的方向吗,这是我的代码(顺便说一句,数据库连接工作正常)

include('database.php');

echo "<div class='grid_4'>
<form action='' method='POST'>
<input type='text' name='search' maxlength='60' size='20px' placeholder='Under  Construction...'/>
<input type='submit' name='ssearch' value='Search' id='favb'>
</form>
</div>";

if(isset($_POST['ssearch']) && $_POST['ssearch'] != "")
{   
$SB=$_POST['ssearch'];

$search=$db->prepare("SELECT body FROM thread WHERE body LIKE ?");
$search->execute(array('%'.$SB.'%'));
$search->setFetchMode(PDO::FETCH_ASSOC);

$sR=""; 

while($row=$search->fetch())
{
$title=$row['title'];
$thread_id=$row['thread_id'];
$preview=$row['preview'];

$sR.='<div class="grid_3" id="previewmargin">
<a href="view_thread.php?id='.$thread_id.'" id="tt">'.$preview.'</a></div>';}
}
echo $sR;
4

1 回答 1

0

在您运行搜索的那一行,如果您从以下位置更改:

$search->execute(array('%'.$SB.'%'));

至:

$search->execute(array("'%" . $SB . "%'"));
于 2013-10-29T19:27:53.163 回答