我正在尝试使用名称或参考号(格式为 ABC/X/012345/XX)搜索数据库。
名称搜索显示完美,如果我查找 ABC 或 XX,参考编号搜索也是如此。
但是,如果我搜索完整的参考号,则找不到匹配项。包含多个数字(例如 ABC/X/01 或什至只有 01)的部分参考号搜索也会出现此问题。
我没有收到错误消息,并且没有显示“抱歉,您的搜索未返回结果”消息,这似乎表明它正在查找正确的条目,只是没有显示它们。
谁能发现我哪里出错了?谢谢!
$search = $_POST['search'];
$search_term = "%".$search."%";
try {
$DBH = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
$DBH->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$STH = $DBH->prepare('SELECT user_id, name FROM users WHERE name LIKE :search_term OR ref_number LIKE :search_term');
$STH->bindParam(':search_term', $search_term, PDO::PARAM_STR);
$STH->execute();
$STH->setFetchMode(PDO::FETCH_ASSOC);
if ($STH->fetchColumn() > 0) {
while($row = $STH->fetch()) {
echo "<a href='viewprofile.php?user_id=".$row['user_id']."'>".$row['name']."</a><br/>";
}
} else {
echo '<p>Sorry, your search returned no results.</p>';
}
}
catch(PDOException $e) {
echo $e->getMessage();
}