CodeIgniter définir plusieurs connections pour mssql dbs?

Je suis déjà malade avec le cadre CI, car je ne peux même pas définir plusieurs connections pour MSSQL Server. J'ai trouvé un forum où l'on m'avait décrit comment établir une connection multiple, mais cela ne fonctionnait pas bien pour moi – l'instruction mssql_query renvoie une erreur indiquant que l'identificateur de lien n'est pas la ressource MSSQL-Link, etc. J'ai fait quelque chose comme ça:

1) définissez le file database.php – file de configuration de database:

$active_group = 'suburb'; $active_record = FALSE; $db['suburb']['hostname'] = 'XXXXXXXX'; $db['suburb']['username'] = 'XXXX'; $db['suburb']['password'] = 'XXXXXXX'; $db['suburb']['database'] = 'XXXXXXX'; $db['suburb']['dbdriver'] = 'mssql'; $db['suburb']['dbprefix'] = ''; $db['suburb']['pconnect'] = TRUE; $db['suburb']['db_debug'] = TRUE; $db['suburb']['cache_on'] = FALSE; $db['suburb']['cachedir'] = ''; $db['suburb']['char_set'] = 'utf8'; $db['suburb']['dbcollat'] = 'utf8_general_ci'; $db['suburb']['swap_pre'] = ''; $db['suburb']['autoinit'] = TRUE; $db['suburb']['ssortingcton'] = FALSE; $active_group = 'default'; $active_record = FALSE; $db['default']['hostname'] = 'XXXXXX'; $db['default']['username'] = 'XXXX'; $db['default']['password'] = 'XXXXXXXX'; $db['default']['database'] = 'XXXXXX'; $db['default']['dbdriver'] = 'mssql'; $db['default']['dbprefix'] = ''; $db['default']['pconnect'] = TRUE; $db['default']['db_debug'] = TRUE; $db['default']['cache_on'] = FALSE; $db['default']['cachedir'] = ''; $db['default']['char_set'] = 'utf8'; $db['default']['dbcollat'] = 'utf8_general_ci'; $db['default']['swap_pre'] = ''; $db['default']['autoinit'] = TRUE; $db['default']['ssortingcton'] = FALSE; 

2) appelez la fonction load dbs:

 $this->suburbDb = $this->load->database('suburb', true); 

3) a créé la requête:

 $res = mssql_query(" SELECT TOP 100 ID FROM Table", $this->suburbDb); 

vous mélangez le pilote mssql natif CI et php.

$this->suburbDb est l'object de database CI et non l'identifiant de lien:

 $this->suburbDb->query('SELECT TOP 100 ID FROM Table'); 

http://codeigniter.com/user_guide/database/queries.html

OU si vous avez vraiment besoin alors

 mssql_query($query, $this->suburbDb->conn_id) 

Vous devriez initialiser les deux connections avec quelque chose comme ça

 $this->suburb = $this->load->database('suburb', TRUE); $this->default = $this->load->database('default', TRUE); $this->db; //<--- houlds the DEFAULT loaded from config file. can only be one $query = $this->suburb->query('SELECT TOP 100 ID FROM Table'); foreach( $query->result() as $row) { .... } 

Devrait être quelque chose comme ça.

PS. consultez le guide codeigniter: CodeIgniter Guide login à la database

[EDIT: SANS ENREGISTREMENT ACTIF]

après avoir fait la connection mssql devrait être possible d'exécuter par lui-même comme ceci:

 // Send a select query to MSSQL $query = mssql_query('SELECT TOP 100 ID FROM Table', $this->suburb ); // Check if there were any records if (!mssql_num_rows($query)) { echo 'No records found'; } else { while ($row = mssql_fetch_array($query)) { echo $row['username'], PHP_EOL; } } // Free the query result mssql_free_result($query);