具有自动完成字符串的 PHP SQL 搜索名字 LIKE 输入值或姓氏 LIKE 输入值和另一个查询


PHP SQL with autocomplete string searching for first name LIKE input value OR last name LIKE input value AND another query?

我基本上是在尝试通过自动完成来完成此查询(每次击键都会触发一个查询)(它正在工作,除了姓氏查询不正确):

$query="SELECT * FROM names WHERE (first like '" . $_POST["keyword"] . "%') OR (last like '%" . $_POST["keyword"] . "') AND year>$curr_year";

任何帮助不胜感激!

$query="SELECT * FROM names WHERE ((first like :first) OR (last like :last)) AND gradyear > :year";
$pdo = new PDO($dsn, $username, $password, $options);
$con = $pdo->prepare($query);
$con->execute([
 ':last'=> "%$_POST[keyword]",
 ':first'=> "$_POST[keyword]%",
 ':year'=>$curr_year
]);
$results = $con->fetchAll(PDO::FETCH_ASSOC);

这就是你做一个准备好的陈述的方式。您想要使用它的原因是为了防止SQL注入。您可以将 PDO 用于预准备语句。