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