【发布时间】:2013-06-13 21:12:37
【问题描述】:
由于某种原因,我的 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();
【问题讨论】:
-
查询中有错字?
:find%<<<-- -
试试
upper(:field) LIKE :find(没有尾随%)。百分比由参数$find绑定。 -
不,后面的 % 确实是一个错字,但删除它并不能解决问题。
-
我认为您不能绑定字段(或表)名称。您可能需要将这些值直接注入到查询中。但一定要消毒! stackoverflow.com/questions/8314043/…
-
耶!感谢showdev,您可以将其作为答案,因为它有效!一千谢谢你!