J'ai un problème avec ma requête et je dois joindre deux tables de bases de données différentes. Mon problème est maintenant de savoir comment exécuter ma requête. J'ai mon format de syntaxe d'ici
S'il vous plaît visitez d'abord ce lien afin que vous puissiez comprendre pourquoi ma syntaxe SQL est comme ceci
http://www.x-developer.com/php-scripts/sql-connecting-multiple-databases-in-a-single-query
$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;
PRINCIPAL PROBLEME: Comment exécuter ma requête?
Si nous faisons comme ça dans codeIgniter:
$ENROLLEES->query($SQL); or $ACCOUNTS->query($SQL);
Comment puis-je exécuter ma requête selon laquelle j'ai plusieurs bases de données? Que vais-je fournir ici[database]->query($SQL);
?
$query = $this->db->query($SQL);
return $query->result_array();
Si les bases de données partagent le serveur, utilisez un identifiant avec des privilèges sur les deux bases de données et exécutez simplement une requête similaire à
$query = $this->db->query("
SELECT t1.*, t2.id
FROM `database1`.`table1` AS t1, `database2`.`table2` AS t2
");
Sinon, je pense que vous devrez peut-être exécuter les 2 requêtes séparément et corriger la logique par la suite.
Je peux voir ce que @ Þaw a mentionné:
$ENROLLEES = $this->load->database('ENROLLEES', TRUE);
$ACCOUNTS = $this->load->database('ACCOUNTS', TRUE);
CodeIgniter prend en charge plusieurs bases de données. Vous devez conserver les deux références de base de données dans une variable distincte, comme vous l'avez fait ci-dessus. Jusqu'à présent, vous avez raison/correct.
Ensuite, vous devez les utiliser comme ci-dessous:
$ENROLLEES->query();
$ENROLLEES->result();
et
$ACCOUNTS->query();
$ACCOUNTS->result();
À la place d'utiliser
$this->db->query();
$this->db->result();
Voir ceci pour référence: http://ellislab.com/codeigniter/user-guide/database/connecting.html
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();
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')
$ this-> db-> select ('id, nom, prix, auteur, catégorie, langue, ISBN, date de publication');
$this->db->from('tbl_books');