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

时间:2016-02-26 18:05:17

标签: php mysql sql

我基本上尝试使用自动完成功能完成此查询(每次按键都会触发查询)(它的工作正常,但姓氏不能正确查询):

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

感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

$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 injection。您可以使用PDO来准备语句。