【问题标题】:How to store query(conditions) in variable using codeigniter如何使用codeigniter将查询(条件)存储在变量中
【发布时间】:2021-03-21 23:30:56
【问题描述】:

我想将查询条件存储在变量中,因为相同的条件可以在不同的地方使用,所以我在函数上创建并使用了连接,但它没有存储任何查询条件。

代码:

 $records; // empty varaible to store all conditions using concatenation
     if ($val->id != '')
        $records .=$this->db->where('table.column', $val->id, true);
    
    if ($val->percentage != '')
        $records .=$this->db->or_where('table.column', $val->percentage, true);

  return $records;

【问题讨论】:

  • 什么是$records
  • @nice_dev 空变量
  • 你在连接之前尝试过$records = ""; 吗?
  • @user_1234 您不能以这种方式返回查询条件,而是在触发前附加到$this-db
  • 是的,我试过 $records='' 但还是不行

标签: php mysql codeigniter


【解决方案1】:

试试这个

$query = $this->db->from('table')
if ($val->id != '')
    $query = $query->where('table.column', $val->id, true);
if ($val->percentage != '')
    $query = $query->or_where('table.column', $val->percentage, true);
$results = $query->get()->result();

【讨论】:

  • 我写了将近10个条件分开,$this->db->from() 在单独的函数中
  • 没问题,您只需要修改相同的查询变量。如果$this->db->from() 在单独的函数中,则将其作为参数传递。这就像增加一个整数变量。只要修改同一个变量,最后应该可以调用get()
  • 您不能使用.=,因为它不返回字符串。 $query 的值是一个查询构建器实例。 $query->where('table.column', $val->id, true) 修改该实例的属性
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-23
  • 1970-01-01
  • 1970-01-01
  • 2015-08-07
  • 1970-01-01
  • 2020-05-06
相关资源
最近更新 更多