webentwicklung-frage-antwort-db.com.de

Wie führe ich meine SQL-Abfrage in CodeIgniter aus?

Ich habe ein Problem mit meiner Abfrage und Ich muss zwei Tabellen aus verschiedenen Datenbanken zusammenfügen. Jetzt ist mein Problem, wie ich meine Abfrage ausführen kann. Ich habe mein Syntaxformat von hier bekommen 

Bitte besuchen Sie zuerst diesen Link, um zu verstehen, warum meine SQL-Syntax so ist.
http://www.x-developer.com/php-scripts/sql-connecting-multiple-databases-in-a-single-query


Ich benutze CodeIgniter und hier ist eine Vorstellung davon, wie meine Abfrage aussieht:
Beachten Sie, wie ich meine Spalten auswähle: 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;

MAIN PROBLEM: Wie führe ich meine Abfrage aus?
.__ Wenn uns dies in codeIgniter gefällt:

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

Wie kann ich meine Abfrage mit mehreren Datenbanken ausführen? Was werde ich hier anbieten?
[database]->query($SQL);?

18
Þaw
$query = $this->db->query($SQL);

return $query->result_array();
35
Mohit maru

Wenn die Datenbanken Server gemeinsam nutzen, verfügen Sie über ein Login, das über Berechtigungen für beide Datenbanken verfügt, und lassen Sie einfach eine Abfrage ausführen, die der folgenden ähnelt:

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

Ansonsten denke ich, dass Sie die 2 Abfragen separat ausführen und die Logik anschließend korrigieren müssen.

12
Robin Castlin

Ich kann sehen, was @ Þaw erwähnt hat:

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

CodeIgniter unterstützt mehrere Datenbanken. Sie müssen beide Datenbankverweise wie oben in separaten Variablen speichern. Bis jetzt hast du recht/richtig.

Als nächstes müssen Sie sie wie folgt verwenden:

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

und 

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

Anstatt zu verwenden 

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

Sehen Sie sich dies als Referenz an: http://ellislab.com/codeigniter/user-guide/database/connecting.html

2
Muhammad Hannan

http://www.bsourcecode.com/codeigniter/codeigniter-select-query/

$query = $this->db->query("select * from tbl_user");

OR

$query = $this->db->select("*");
            $this->db->from('table_name');
            $query=$this->db->get();
1
Gurpreet Singh
 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')
0
Muhammad Sulman

$ this-> db-> select ('ID, Name, Preis, Autor, Kategorie, Sprache, ISBN, publish_date');

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