2016-04-05 3 views
0

Для того, чтобы написать запрос в CodeIgniter вам нужно написать что-то вроде $this->db->query или $someDB->query. Но что, если я хочу присоединиться к таблицам из двух разных баз данных?Объединение таблиц из двух баз данных с использованием CodeIgniter

Я знаю, что я могу сделать это с помощью чистого PHP, используя mysqli_connect и писать что-то вроде:

SELECT * FROM db1.table1 JOIN db2.table2 

Но есть способ сделать это с помощью CodeIgniter?

+0

http://www.bsourcecode.com/codeigniter/codeigniter-join-query/ –

+0

Оказалось, что мне не нужно уже присоединиться к базам данных. Спасибо всем за полезные примеры. Тем не менее, было бы интересно узнать, как это сделать, поэтому я не удаляю эту тему. –

ответ

0

Вы можете попробовать использовать функцию я использую в проекте я работаю прямо сейчас ... Пожалуйста, смотрите ниже код ...

function join_table() 
{ 
    $this->db->select(//column name, //column name, //column name); 
    $this->db->from(//table1 name); 
    $this->db->join(//table2 name, //table1 name.//column name = //table2 name.//column name'); 
    $this->db->where(//condition); 
    return $this->db->get()->result(); 
} 
+0

Спасибо, Брайан, за быстрый ответ. –

+0

Это очень полезно, но есть примеры использования соединения в единой базе данных. Простите мою глупость, но я до сих пор не понимаю, как присоединиться к таблицам из двух разных баз данных. –

+0

Не думаю, что это было бы правильно, чтобы изменить $ this-> дб до $ DB1 и $ db2 в этих примерах –

0

Это простое объединение студентов и преподавателей таблицы с то же имя столбца, надеюсь, вы его получите.

$this->db->select("s.*,t.*"); 
$this->db->from("student as s"); 
$this->db->join("teacher as t","s.student_id = t.student_id","both"); 
$result = $this->db->get()->result_array(); 
return $result; 

также вам нужна одна строка try row_array(); вместо result_array();

+0

спасибо, что это здорово и очень хорошо объяснил, но мне еще нужно соединить две разные базы данных. Не две таблицы в одной базе данных. –

0

метод использования запросов из CodeIgniter и пройти любой сложный корыто SQL запросов:

$query = $this->db->query("SELECT * FROM dbname1.table t1 JOIN db2.table t2 ON t2.column = t1.column"); 

foreach ($query->result() as $row) 
{ 
    print_r($row); 
} 
+0

Я полагаю, что '$ this-> db' соединяет только db1. Если я пытаюсь соединить db2 через '$ this-> load-> базы данных ('db2', правда);' возвращает: 'pg_query(): Сбой запроса: ОШИБКА: отношение 'db2.table2' не exist' –

+0

I означает, что он возвращает ошибку по запросу, а не по соединению db, конечно –

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