【问题标题】:Active Record Issue in Where clause CodeIgniterWhere 子句 CodeIgniter 中的 Active Record 问题
【发布时间】:2017-11-30 11:40:15
【问题描述】:

我在活动记录下面写了这个

$query = $this->db->from('tbl_restaurant as tr, tbl_restaurant_servicearea as trs, tbl_restaurant_cuisines as trc')
                          ->where('tr.id', 'trs.restaurant_id')
                          ->where('tr.id', 'trc.restaurant_id')
                          ->where('trs.servicearea_subujrb', $search_suburb)
                          ->get();

生成以下提供 0 行的查询。

SELECT * FROM `tbl_restaurant` as `tr`, `tbl_restaurant_servicearea` as `trs`, `tbl_restaurant_cuisines` as `trc` WHERE `tr`.`id` = 'trs.restaurant_id' AND `tr`.`id` = 'trc.restaurant_id' AND `trs`.`servicearea_subujrb` = '753010 - Cuttack'

但是查询应该看起来像这样表明我们将获得表中的行。

SELECT * FROM tbl_restaurant as tr, tbl_restaurant_cuisines as trc, tbl_restaurant_servicearea trs WHERE tr.id = trs.restaurant_id and tr.id = trc.restaurant_id and trs.servicearea_suburb = '".$search_suburb."'

我认为问题出在 where 子句中的“ID”中,它在数据库表中是整数。如果我们要删除反勾号,则结果显示正确。

请提供解决方案,以便结果为该查询返回正确的行。

我知道我是否会使用 $this->db->query();那么我会得到解决方案,但我想使用活动记录。

提前致谢

【问题讨论】:

    标签: php database codeigniter-3


    【解决方案1】:

    已解决:

    $query = $this->db->from('tbl_restaurant as tr, tbl_restaurant_servicearea as trs, tbl_restaurant_cuisines as trc')
                              ->where('tr.id = trs.restaurant_id')
                              ->where('tr.id = trc.restaurant_id')
                              ->where('trs.servicearea_subujrb', $search_suburb)
                              ->get();
    

    【讨论】:

      猜你喜欢
      • 2015-09-17
      • 2015-07-31
      • 2011-11-25
      • 1970-01-01
      • 2016-02-25
      • 1970-01-01
      • 2013-09-26
      • 2013-02-27
      • 1970-01-01
      相关资源
      最近更新 更多