由于某种原因,我的PHP PDO sql搜索没有任何结果。我试着在我的网站上安装某种搜索引擎,但我似乎什么也找不到。到目前为止,我已经尝试了很多不同的解决方案,但搜索结果一直是空的,即使给出了正确的参数。$find变量由用户输入,$field变量是一个下拉列表,用户可以从中选择要搜索的内容,它返回的值等于数据库中列的名称。
$find = strtoupper($_POST['find']);
$find = "%" . $find . "%";
$field = $_POST['field'];
$qry = $conn->prepare("SELECT * FROM '"MovieDB'" WHERE upper(:field) LIKE :find%");
$qry->bindParam(':find', $find, PDO::PARAM_STR, 16);
$qry->bindParam(':field',$field, PDO::PARAM_STR,16);
$qry->execute();
$results = $qry->fetchAll();
PDO不允许绑定字段名或表名。
我建议将字段值直接注入到查询字符串中。
一定要对其进行清理以避免SQL注入!
$qry = $conn->prepare("SELECT * FROM '"MovieDB'"
WHERE upper(`".$field_santizied."`) LIKE :find");
$qry->bindParam(':find', $find, PDO::PARAM_STR, 16);
如何使用PDO动态构建查询
php.net引用无法绑定表名:
69304年http://us3.php.net/manual/en/book.pdo.php