Php 当搜索条目是部分条目时,查询显示结果,而不是当它是一个数据库条目时

Php 当搜索条目是部分条目时,查询显示结果,而不是当它是一个数据库条目时,php,mysql,mysqli,Php,Mysql,Mysqli,我的代码几乎可以完全正常工作: $result = mysqli_query($conn,"SELECT BOEK_TITEL AS boektitel, BOEK_AUTEUR AS auteur, BOEK_GENRE as genre, BOEK_JAAR as jaar, BOEK_PAGINAS AS paginas, BOEK_TAG1 AS tag1, BOEK_TAG2 AS tag2, BOEK_TAG3 AS tag3 FROM b_boek WHERE BOEK_TITEL

我的代码几乎可以完全正常工作:

$result = mysqli_query($conn,"SELECT BOEK_TITEL AS boektitel, BOEK_AUTEUR AS auteur, BOEK_GENRE as genre, BOEK_JAAR as jaar, BOEK_PAGINAS AS paginas, BOEK_TAG1 AS tag1, BOEK_TAG2 AS tag2, BOEK_TAG3 AS tag3 FROM b_boek WHERE BOEK_TITEL LIKE '%". $search ."%' ORDER BY BOEK_TITEL");
例如,当书的标题=Bloedband,我搜索'Bloed','band',ban'等时,书就是显示结果的一部分

如果我搜索“Bloedband”,它不会显示


它可能与我的通配符有关,但似乎无法修复它。

我只需调整原始查询,并使用OR子句检查精确匹配:


潜在的注入漏洞。$search在何处以及如何定义?我同意@Watilin。。。不要简单地向查询中抛出一些随机值,而是使用。@Michael,听起来使用or语句并进行额外的精确比较将是您的最佳选择
$result = mysqli_query($conn,"SELECT BOEK_TITEL AS boektitel, BOEK_AUTEUR AS auteur, BOEK_GENRE as genre, BOEK_JAAR as jaar, BOEK_PAGINAS AS paginas, BOEK_TAG1 AS tag1, BOEK_TAG2 AS tag2, BOEK_TAG3 AS tag3 FROM b_boek WHERE BOEK_TITEL LIKE '%". $search ."%' OR BOEK_TITEL = '". $search ."' ORDER BY BOEK_TITEL");