使用php和MySQL我试图创建一个SELECT语句来搜索数据库表

vx6bjr1n  于 2023-10-15  发布在  PHP
关注(0)|答案(1)|浏览(100)

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"] . '_  ';

没有结果。

nzrxty8p

nzrxty8p1#

您正在编写SQL LIKE语句,以搜索以$_REQUEST[“term”]开头并在其后包含其他内容的字符串。你需要做的是组合它来搜索以 * whatever开头的字符串,然后是$_REQUEST[“term”],然后是后面的其他字符串:

$param_term = '%'.$_REQUEST["term"].'%'

edit:正如上面的评论所提到的,虽然这将解决您当前的问题,但如果恶意行为者设法向您的应用程序发送请求,则维护此代码可能会产生大量问题。请在将任何输入发送到数据库之前对其进行清理

相关问题