query num_rows fetch_assoc example php sql codeigniter join multiple-databases

php - num_rows - query codeigniter example



Cómo ejecutar mi consulta SQL en CodeIgniter (6)

Tengo un problema con mi consulta y necesito unir dos tablas de diferentes bases de datos ahora mi problema es cómo puedo ejecutar mi consulta. Tengo mi formato de sintaxis de aquí

Visite primero este enlace para que pueda entender por qué mi sintaxis SQL es así
http://www.x-developer.com/php-scripts/sql-connecting-multiple-databases-in-a-single-query

Estoy usando CodeIgniter y aquí hay una idea de cómo se ve mi consulta:
Observe la forma en que selecciono mis columnas: DATABASE_NAME.TABLE_NAME.COLUMN_NAME

$ENROLLEES = $this->load->database(''ENROLLEES'', TRUE); $ACCOUNTS = $this->load->database(''ACCOUNTS'', TRUE); $SELECT = "SELECT $ACCOUNTS.BALANCES_TABLE.IDNO, $ACCOUNTS.BALANCES_TABLE.balance"; $FROM = "FROM $ACCOUNTS.BALANCES_TABLE"; $WHERE = "$ACCOUNTS.BALANCES_TABLE.IDNO IN (SELECT $ENROLLEES.ENROLLEES_TABLE.IDNO FROM $ENROLLEES.ENROLLEES_TABLE)"; $SQL = $SELECT ." ". $FROM ." ". $WHERE;

PROBLEMA PRINCIPAL: ¿Cómo ejecutar mi consulta?
Si nos gusta esto en codeIgniter:

$ENROLLEES->query($SQL); or $ACCOUNTS->query($SQL);

¿Cómo puedo ejecutar mi consulta que tengo múltiples bases de datos? ¿Qué voy a proporcionar aquí
[database]->query($SQL); ?


$ this-> db-> select (''id, nombre, precio, autor, categoría, idioma, ISBN, publish_date'');

$this->db->from(''tbl_books'');


Puedo ver lo que @ Þaw mencionó:

$ENROLLEES = $this->load->database(''ENROLLEES'', TRUE); $ACCOUNTS = $this->load->database(''ACCOUNTS'', TRUE);

CodeIgniter soporta múltiples bases de datos. Debe mantener ambas referencias de la base de datos en una variable separada como lo hizo anteriormente. Hasta aquí estás en lo correcto / correcto.

A continuación necesitas usarlos como se muestra abajo:

$ENROLLEES->query(); $ENROLLEES->result();

y

$ACCOUNTS->query(); $ACCOUNTS->result();

En lugar de usar

$this->db->query(); $this->db->result();

Vea esto para referencia: http://ellislab.com/codeigniter/user-guide/database/connecting.html


Si las bases de datos comparten un servidor, tenga un inicio de sesión que tenga privilegios para ambas bases de datos, y simplemente haga que una consulta se ejecute de forma similar a:

$query = $this->db->query(" SELECT t1.*, t2.id FROM `database1`.`table1` AS t1, `database2`.`table2` AS t2 ");

De lo contrario, creo que podría tener que ejecutar las 2 consultas por separado y luego corregir la lógica.



return $this->db->select(''(CASE enter code hereWHEN orderdetails.ProductID = 0 THEN dealmaster.deal_name WHEN orderdetails.DealID = 0 THEN products.name END) as product_name'')


$query = $this->db->query($SQL); return $query->result_array();