我有一个简单的文本来自我希望传递给占位符的表单,它适用于其他文本。无论出于何种原因,当我搜索“fun”这个词时,脚本都会失败。
这是我的代码。通常,这是直截了当的,但我似乎无法绕过这一个。任何想法都表示赞赏。
$search = $_POST['searchInput'];
$search = strtolower($search);
$search = '%'.$search.'%';
try {
$sqlSearch = "SELECT items.item_id,item_detail,auc_id,item_desc,categories,min_bid_increment,auc_start,auc_end,display_item,bidder,amount_bid FROM items
LEFT JOIN bid_history ON items.item_id = bid_history.item_id
WHERE org_id = :orgid
AND auc_id NOT LIKE 'live%'
AND display_item = '1'
AND item_detail LIKE :searchInput
OR item_desc LIKE :searchInput
OR items.item_id LIKE :searchInput
ORDER BY items.item_id ASC, bid_history.amount_bid DESC;";
$sSearch = $pdo->prepare($sqlSearch);
$sSearch->bindValue(':orgid',$org_id);
$sSearch->bindValue(':searchInput',$search);
$sSearch->execute();
$resultsSearch = $sSearch->fetchAll();
}
catch (PDOException $e) {
echo $e;
}
编辑:
如果我手动将此查询放入我的数据库,我会得到结果。
SELECT items.item_id,item_detail,auc_id,item_desc,categories,min_bid_increment,auc_start,auc_end,display_item,bidder,amount_bid FROM items
LEFT JOIN bid_history ON items.item_id = bid_history.item_id
WHERE org_id = 'CHS102915'
AND auc_id NOT LIKE 'live%'
AND display_item = '1'
AND item_detail LIKE '%fun%'
OR item_desc LIKE '%fun%'
OR items.item_id LIKE '%fun%'
ORDER BY items.item_id ASC, bid_history.amount_bid DESC
答案 0 :(得分:0)
问题最终是我正在使用的查询抓取太多记录,最终给我一个内存错误,会导致脚本崩溃。我如何纠正这个问题,是为了获得更有效的查询。总是像弗雷德在评论中解释的那样设置你的错误指标,并感谢N.B结束时的分号问题。所以最后它与我的通配符或占位符无关,只是一个需要改进的查询。