如果最小值和最大值为空,则将其更改为“price”
$post['min'] == NULL ? $post['min'] = 'price' : '';
$post['max'] == NULL ? $post['max'] = 'price' : '';
但是当我在查询中包含它时
$query = "SELECT * FROM items WHERE item_name LIKE ? AND price BETWEEN ? AND ? ORDER BY price ?";
$values = array(
$this->security->xss_clean('%' . $post['item_name'] . '%'),
$this->security->xss_clean($post['min']),
$this->security->xss_clean($post['max']),
$this->security->xss_clean($post['order_by'])
);
$result = $this->db->query($query, $values)->result_array();
它抛出一个数据库错误,表示:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''ASC'' at line 1
如何删除查询绑定中的''
?
1条答案
按热度按时间q8l4jmvw1#
您的查询并不太复杂,所以我建议使用活动记录。使用条件调用的
where()
方法来添加筛选逻辑。我还没有测试下面的建议,它假设所有四个元素都存在于
$post
数组中。我不认为用奇怪的
price >= price
和price <= price
逻辑来扩充查询是有意义的--如果列检查没有价值,就省略它。推荐的建模方法: