Comment faire pour exécuter ma requête SQL dans CodeIgniter
J'ai un problème avec ma requête et j'ai besoin de joindre deux tables à partir de différentes bases de données maintenant, mon problème est comment puis-je exécuter ma requête. J'ai obtenu mon format de syntaxe à partir d'ici
Veuillez visiter d'abord ce lien afin que vous puissiez en comprendre le pourquoi de ma syntaxe SQL est comme ça
http://www.x-developer.com/php-scripts/sql-connecting-multiple-databases-in-a-single-query
Im en utilisant CodeIgniter et voici une Idée de ce que ma requête ressemble à:
Avis de la façon dont je suis la sélection de mes colonnes: 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;
PRINCIPAL PROBLÈME: Comment faire pour Exécuter ma requête?
Si nous faisons comme cela dans codeIgniter:
$ENROLLEES->query($SQL); or $ACCOUNTS->query($SQL);
Comment puis-je exécuter ma requête que je vais avoir plusieurs bases de données? Que vais-je offrir ici
[database]->query($SQL);
?
Avez-vous vraiment besoin de deux bases de données pour que, peut-être plus facile d'utiliser deux tables?
sir @SureshKamrushi vous navez pas obtenir ma question, je sais comment définir les bases de données en CI , j'essaie de joindre 2 tables de 2 bases de données différentes, que vais-je offrir à CI de la syntaxe
your_database->query(SQL);
? depuis que je suis interrogation à partir de deux bases de donnéesjuste après la base de données conçue par la société.
OriginalL'auteur | 2013-05-08
Vous devez vous connecter pour publier un commentaire.
OriginalL'auteur Mohit maru
Si les bases de données de serveur de partage, d'avoir une connexion qui a des privilèges pour les deux bases de données, et tout simplement l'exécution de la requête similaire:
Sinon, je pense que vous pourriez avoir à exécuter les 2 requêtes séparément et d'en fixer la logique par la suite.
config.php
fichier. J'ai ces$ENROLLEES = $this->load->database('ENROLLEES', TRUE); $ACCOUNTS = $this->load->database('ACCOUNTS', TRUE);
évidemment la dernière est ladefault
. si j'utilise$this->db->query()
Cela voudrait dire que Im en utilisant la base de données par défaut.Vous n'aurait besoin que d'une connexion, c'est une "charge de base". Si l'utilisateur que vous chargez avec a accès à toutes les bases de données données dans ce cas. Et lors de la récupération des tables, vous pouvez spécifier le
database
.table
.avez-vous dire, monsieur que je ne voudrais pas charger mes 2 autres bases de données et utiliser mon défaut?
Vous avez une base de données par défaut et l'utilisateur auquel vous vous connectez avec aurait
PRIVELEGES
pour les 2 autres bases de données aswell, et puis vous pouvez imbriquer les requêtes entre les bases de données comme je l'ai fait dans l'exemple donné.OriginalL'auteur Robin Castlin
Je peux voir ce que @Þaw mentionné :
CodeIgniter prend en charge plusieurs bases de données. Vous avez besoin de garder à la fois de la base de données de référence dans la variable distincte comme vous l'avez fait ci-dessus. Jusqu'à présent, vous êtes droite/correct.
Ensuite, vous devez les utiliser comme ci-dessous:
et
au Lieu d'utiliser
Voir cette référence:
http://ellislab.com/codeigniter/user-guide/database/connecting.html
OriginalL'auteur Muhammad Hannan
http://www.bsourcecode.com/codeigniter/codeigniter-select-query/
OriginalL'auteur Gurpreet Singh
OriginalL'auteur Muhammad Sulman
$this->db->select('id, nom, prix, auteur, catégorie, de la langue, ISBN, publish_date');
OriginalL'auteur