如果使用thinkphp查询数据库忽略不存在的查询条件?
$condition 里面会有时间的条件,这个时间的条件是可选条件,现在就想如果时间条件不存在如何把时间条件给去除?而时间条件存在时,则加上时间条件查询结果?
方法一:数组不存在会报错。
public static function getHomeworkByStudentId($id, $conditions)
{
$conditions['startTime'] = '2018-09-01';
$conditions['endTime'] = '2018-09-02';
$result = self::where('id', '=', $id)
->whereTime('recordTime', '>', $conditions['startTime'])
->whereTime('recordTime', '<', $conditions['endTime'])
->select();
return $result;
}
方法二:如果时间条件不存在,生成sql的时间条件就会变成0就像下面这样:
SELECT * FROM `homework` WHERE `id` = '1' AND ( `recordTime` >= 0 AND `recordTime` <= 0 )
public static function getHomeworkByStudentId($id, $conditions)
{
$conditions['startTime'] = '2018-09-01';
$conditions['endTime'] = '2018-09-02';
$result = self::where('id', ':id')
->whereTime('recordTime', '>=', ':startTime')
->whereTime('recordTime', '<=', ':endTime')
->bind($conditions)
->select();
return $result;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
ThinkPHP 5.1文档,最后一个 条件查询。