我正在尝试使用名称或参考号码搜索数据库(格式为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();
}
答案 0 :(得分:1)
PDOStatement::fetchColumn($index = 0)
获取整行并返回$index
列的值。如果要测试查询返回的行数,请使用PDOStatement::rowCount()