0

出于某种原因,我的 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();
4

1 回答 1

0

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 引用无法绑定表名:
http ://us3.php.net/manual/en/book.pdo.php#69304

于 2013-06-13T21:28:22.190 回答