PHP代码:
$param_term = $_REQUEST["term"] . '%';
$sql = "SELECT `id`, `code` FROM icd_ten_codes WHERE code LIKE '$param_term'";
要搜索的表数据:
- A000 01型霍乱弧菌霍乱生物变种
- A001 01型霍乱弧菌埃尔托生物变种致霍乱
我的问题是10%。当我搜索“霍乱”时,我没有得到任何结果,因为在到达霍乱之前,A000或A001正在被拾取。有没有办法修改$param_term,这样我就可以跳过A000/A001,让它看到霍乱?
我尝试使用:
$param_term = $_REQUEST["term"] . '_ ';
没有结果。
1条答案
按热度按时间nzrxty8p1#
您正在编写SQL LIKE语句,以搜索以$_REQUEST[“term”]开头并在其后包含其他内容的字符串。你需要做的是组合它来搜索以 * whatever开头的字符串,然后是$_REQUEST[“term”],然后是后面的其他字符串:
edit:正如上面的评论所提到的,虽然这将解决您当前的问题,但如果恶意行为者设法向您的应用程序发送请求,则维护此代码可能会产生大量问题。请在将任何输入发送到数据库之前对其进行清理