PHP LIKE查询一直空着

时间:2013-06-13 21:12:38

标签: php sql pdo sql-like

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

1 个答案:

答案 0 :(得分:0)

PDO不允许绑定字段或表名。

我建议将字段值直接注入查询字符串 一定要清理它以避免SQL注入!

$qry = $conn->prepare("SELECT * FROM \"MovieDB\"
                       WHERE upper(`".$field_santizied."`) LIKE :find");
$qry->bindParam(':find', $find, PDO::PARAM_STR, 16);

How to dynamically build queries with PDO

php.net引用无法绑定表名:
http://us3.php.net/manual/en/book.pdo.php#69304