Plusieures bases de données dans une page php [Résolu]

Signaler
Messages postés
21
Date d'inscription
mardi 8 mai 2001
Statut
Membre
Dernière intervention
18 février 2010
-
Messages postés
21
Date d'inscription
mardi 8 mai 2001
Statut
Membre
Dernière intervention
18 février 2010
-
Bonjour, je quelqu'un pourrait'il m'expliquer comment faire pour utiliser plusieures bases de données (même serveur) dans une même page php?

lorsque j'essaie d'utiliser la 2eme base la page ne répond pas.

Merci.

voici un bout de code

$connection=mssql_connect('server','user','pass');
$db=mssql_select_db('test',$connection);
$query=mssql_query('SELECT * FROM x', $db);
while...

$db=mssql_select_db('test1',$connection);
$query=mssql_query('SELECT * FROM x', $db);
while...

lors de la seconde requete j'obtiens mssql_query(): supplied argument is not a valid MS SQL-Link resource in /var/www/liste/inventaire/modifieremplacement.php on line 32

Bowlman

2 réponses

Messages postés
662
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2009
1
Bonjour,

Une solution très fonctionnelle, en utilisant PHP 5.2 serait du type:

// Definir la première connexion
$dsn1 = 'mssql:dbname=testdb;host=127.0.0.1';
$user1 = 'dbuser';
$password1 = 'dbpass';
// Definir la seconde connexion
$dsn2 = 'mssql:dbname=testdb2;host=127.0.0.1';
$user2 = 'db2user';
$password2 = 'db2pass';

try {
    $db1 = new PDO($dsn1, $user1, $password1);
} catch (PDOException $e) {
    echo 'Connexion échouée : ' . $e->getMessage();
}
try {
    $db2 = new PDO($dsn2, $user2, $password2);
} catch (PDOException $e) {
    echo 'Connexion échouée : ' . $e->getMessage();
}

$result = $db1->query( 'SELECT * FROM x' ) ;
foreach( $result as $row ) {
   if ( $row['id'] == 550 {
      $r2 = $fb2->query( "SELECT * FROM x WHERE refid='" . $row['id'] . "'" ;
      foreach( $r2 as $n ) {
        // traitement
      }
   }
}



A noter que grâce à PDO, il n'est pas nécessaire que les 2 bases de données soient du même type. On peut parfaitement utiliser cette méthode pour convertir, par exemple, une base access ou mssql en mysql ou inversement.

Voir la documentation de PDO pour plus d'informations.
Messages postés
21
Date d'inscription
mardi 8 mai 2001
Statut
Membre
Dernière intervention
18 février 2010

Merci beaucoup.
Celà m'as bien dépanné.


Bowlman