Паралелни заявки в codeigniter

0 гласа
255 прегледа
попитан 2016 юли 29 от VeskoNikolov (1,620 точки)

Имам този код:

$this->db->select('*'); //we reffer to this as "query 1"
$this->db->from('table1');
$this->db->where('col1', 'val1');
 
$this->db->select('*'); //we reffer to this as "query 2"
$this->db->from('table2');
$this->db->where('col2', 'val2');
 
$this->db->get(); //execute query 1
 
$this->db->get(); //execute query 2

Въпросът е следният:

Как да направя така, че строежа на втората заявка (query 2) да не се преплита с първата заявка (query 1)?
И да ги изпълнявам чак след като съм построил и двете.

3 отговори

+1 глас
отговорени 2016 юли 29 от byordanov (1,150 точки)
избран 2016 юли 29 от VeskoNikolov
 
Най-добър отговор
$q1 = $this->db->select()->from()->where()

$q2 = $this->db->select()->from()->where()

$r1 = $q1->get()

$r2 = $q2->get()

нещо от сорта на това?
коментиран 2016 юли 29 от VeskoNikolov (1,620 точки)
редактиран 2016 юли 29 от VeskoNikolov
Всъщност изглежда писах прекалено рано, пак ги преплита.
0 гласа
отговорени 2016 септември 26 от анонимен
редактиран 2016 септември 27

Здравей,
предполагам, че не ти трябват повече вариант но ето един друг.

$this->db->select('*'); //we reffer to this as "query 1"
$this->db->from('table1');
$this->db->where('col1', 'val1');
$data['rs1'] = $this->db->get(); //execute query 1
 
$this->db->select('*'); //we reffer to this as "query 2"
$this->db->from('table2');
$this->db->where('col2', 'val2');
$data['rs2'] = $this->db->get(); //execute query 2
Тук ще получиш масив с обекти, като можеш да ги достъпиш по следния начин.
$data['rs1']->row(), $data['rs1']->row_array(), $data['rs1']->result(), $data['rs1']->result_array(),
По същия начин и за другия масив.
0 гласа
отговорени 2016 септември 26 от ilinovster (1,870 точки)
Ето това може би ще ти помогне:

https://github.com/bcit-ci/CodeIgniter/wiki/Active-Record-parallel-queries
...