问题描述
我的网站上有一个搜索功能,允许用户定义要搜索的关键字。 搜索处理每天进行一次,因此关键字存储在表格中。
+---------+--------------------------------------------+------+
| user_id | subquery | type |
+---------+--------------------------------------------+------+
| 1 | desc LIKE '%test1%' OR desc LIKE '%test1%' | buy |
+---------+--------------------------------------------+------+
然后通过以下方式进行研究:
$req = "SELECT user_id,subquery,type FROM table";
$res = $pdo->prepare($req);
$res->execute();
while ($rows = $res->fetch(PDO::FETCH_ASSOC)) {
$req2 = "SELECT * FROM items_tbl WHERE (".$rows['subquery'].") and type = '".$rows['type']."'";
$res2 = $pdo->prepare($req2);
$res2->execute();
while($rows2 = $res2->fetch(PDO::FETCH_ASSOC)) {
Do stuff...
}
}
我现在想使用准备好的语句来捕获异常,所以我尝试过:
while ($rows = $res->fetch(PDO::FETCH_ASSOC)) {
$req2 = "SELECT * FROM items_tbl WHERE (:subquery) and type=:type";
$res2 = $pdo->prepare($req2);
$res2->execute(array('subquery' => $rows['subquery'],'type' => $rows['type']));
while($rows2 = $res2->fetch(PDO::FETCH_ASSOC)) {
Do stuff...
}
}
它什么都不返回,WHERE(:subquery)没有被合适的内容填充。
这样做的正确方法是什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)