我基本上是在尝试通过自动完成来完成此查询(每次击键都会触发一个查询)(它正在工作,除了姓氏查询不正确):
$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 用于预准备语句。