Bowlman
Messages postés21Date d'inscriptionmardi 8 mai 2001StatutMembreDernière intervention18 février 2010
-
3 août 2009 à 11:12
Bowlman
Messages postés21Date d'inscriptionmardi 8 mai 2001StatutMembreDernière intervention18 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
nautilus99
Messages postés661Date d'inscriptionvendredi 26 septembre 2008StatutMembreDernière intervention18 septembre 20091 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.