Plusieures bases de données dans une page php

Résolu
Bowlman Messages postés 21 Date d'inscription mardi 8 mai 2001 Statut Membre Dernière intervention 18 février 2010 - 3 août 2009 à 11:12
Bowlman Messages postés 21 Date d'inscription mardi 8 mai 2001 Statut Membre Dernière intervention 18 février 2010 - 5 août 2009 à 12:09
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

nautilus99 Messages postés 661 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 18 septembre 2009 1
5 août 2009 à 09:54
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.
3
Bowlman Messages postés 21 Date d'inscription mardi 8 mai 2001 Statut Membre Dernière intervention 18 février 2010
5 août 2009 à 12:09
Merci beaucoup.
Celà m'as bien dépanné.


Bowlman
0
Rejoignez-nous