php - 使用 oci8 数据库驱动程序在 Codeigniter 中组合 oracle sql AND OR 查询

标签 php database oracle codeigniter oci8

我正在使用 codeigniter OCI8 数据库驱动程序,任何人都可以帮助我如何使用 $this->db->group_start()

如果这在 oci8 中不起作用,那么任何替代选项 我正在使用基于 ajax 的数据表。

在页面加载数据表时有效,但在搜索数据表的情况下返回此错误

Fatal error: Call to undefined method CI_DB_oci8_driver::group_start()

这是我的代码

function _get_datatables_query(){
    $this->db->from($this->table);

    $i = 0;

    foreach($this->column_search as $item){
        if(strtoupper($_POST['search']['value'])) // if datatable send POST for search
        {
            if($i===0) // first loop
            {
                $this->db->group_start();
                $this->db->like($item, strtoupper($_POST['search']['value']));
            }
            else
            {
                $this->school_db->or_like($item, strtoupper($_POST['search']['value']));
            }
            $this->db->group_end();
          //  if(count($this->column_search) - 1 == $i) //last loop
             //   $this->db->group_end(); //close bracket
        }
        $i++;
    }

    if(isset($_POST['order'])) // here order processing
    {
        $this->db->order_by($this->column_order[$_POST['order']['0']['column']], $_POST['order']['0']['dir']);
    }
    else if(isset($this->order))
    {
        $order = $this->order;
        $this->db->order_by(key($order), $order[key($order)]);
    }
}

最佳答案

我不知道会抛出哪个错误 - 但你的函数不会那样工作 - 请尝试以下操作

function _get_datatables_query()
{
    $this->db->from($this->table);

    $this->db->group_start();
    foreach($this->column_search as $item)
    {
        if(strtoupper($_POST['search']['value'])) // if datatable send POST for search
        {
            $this->db->or_like($item, strtoupper($_POST['search']['value']));
        }
    }
    $this->db->group_end();

    if(isset($_POST['order'])) // here order processing
    {
        $this->db->order_by($this->column_order[$_POST['order']['0']['column']], $_POST['order']['0']['dir']);
    }
    else if(isset($this->order))
    {
        $order = $this->order;
        $this->db->order_by(key($order), $order[key($order)]);
    }
}

关于php - 使用 oci8 数据库驱动程序在 Codeigniter 中组合 oracle sql AND OR 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48296151/

相关文章:

php - RegEx 替换 HTML 标签中的所有宽度和高度值

PHP:从数组或 SQL 表中获取数据更快吗?

Oracle的COLLECT函数创建具有随机名称的新集合数据类型

PHPUnit assertTrue 问题

php - 按另一个预定义的、非详尽的数字数组对数字数组进行排序,然后升序排序

即使在设置 date_default_timezone_set 之后,PHPExcel 也会得到错误的时区

sql - 如何修复我在 nosql (mongodb) 中的 m..n 关系?

mysql - 为什么不使用记录的创建时间作为主键呢?

sql - 防止oracle "order by"部分中的sql注入(inject)

java - 依赖 order by 中空值的顺序是否安全?