2016-12-22 3 views
1

Я разрабатываю веб-приложение codeigniter php. Есть у меня ошибка как это:Неустранимая ошибка: вызов неопределенного метода CI_DB_mysql_driver :: group_start()

Fatal error: Call to undefined method CI_DB_mysql_driver::group_start() in C:\wamp\www\ci_sock\application\models\customer_m.php on line 31

enter image description here

Как решить эту проблему. Есть мой PHP код ниже:

foreach ($this->column_search as $item) // loop column 
    { 
     if($_POST['search']['value']) // if datatable send POST for search 
     { 

      if($i===0) // first loop 
      { 
       $this->db->group_start(); // open bracket. query Where with OR clause better with bracket. because maybe can combine with other WHERE with AND. 
       $this->db->like($item, $_POST['search']['value']); 
      } 
      else 
      { 
       $this->db->or_like($item, $_POST['search']['value']); 
      } 

      if(count($this->column_search) - 1 == $i) //last loop 
       $this->db->group_end(); //close bracket 
     } 
     $i++; 
    } 

Есть 31 линия $this->db->group_start(); как это.

Пожалуйста, помогите мне решить эту проблему.

+0

Можете ли вы попробуйте применить group_start() перед foreach и group_end после цикла? – Rajesh

+0

прошу иметь в виду. Я не выражаю себя в кодеригенере. –

+0

это зависит от того, как вы хотите сгруппировать их, существует также группа or_group для групповых условий OR отдельно '> or_group_start() -> где ('b', 'b') -> где ('c', ' c ') -> group_end() ' – Rajesh

ответ

1

Попробуйте этот путь.

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

Примечание: Я не мог проверить выполнение этого кода в данный момент

2

У меня есть решение этой проблемы, пожалуйста, измените код на следующее:

if($_POST['search']['value']) // if datatable send POST for search 
      { 

       if($i===0) // first loop 
       { 
        // $this->db->group_start(); // open bracket. query Where with OR clause better with bracket. because maybe can combine with other WHERE with AND. 
        $this->db->like($item, $_POST['search']['value']); 
       } 
       else 
       { 
        $this->db->or_like($item, $_POST['search']['value']); 
       } 

       if(count($this->column_search) - 1 == $i); //last loop 
        // $this->db->group_end(); //close bracket 


      } 
Смежные вопросы