OVH Cloud OVH Cloud

connexions multiple MySQL

4 réponses
Avatar
a
Bonjour,

J'ai une petite question. quelqu'un sait il pourquoi le code suivant ne
fonctionne pas ?

$lien1 = mysql_connect(C_DB_SERVEUR1, C_DB_USER1, C_DB_PASSWORD1);
mysql_select_db(C_DB_BASE1, $lien1);
$requete1 = "SELECT * FROM table_base1";
$resultat1 = mysql_query($requete1);
$champbase1 = mysql_result($resultat1, 0);
=> çà, çà marche

$lien2 = mysql_connect(C_DB_SERVEUR2, C_DB_USER2, C_DB_PASSWORD2);
mysql_select_db(C_DB_BASE2, $lien2);
$requete2 = "SELECT * FROM table_base2";
$resultat2 = mysql_query($requete2);
$champbase2 = mysql_result($resultat2, 0);
=> çà, çà marche

mysql_free_result($resultat2);
mysql_close($lien2);
unset($lien2);

$select_base1 = mysql_select_db(C_DB_BASE1, $lien1);
$resultat1 = mysql_query($requete1);
echo "Valeur de resultat1 : $resultat1 <br>";
$champbase1 = mysql_result($resultat1, 0);
=> là çà ne marche plus !!!

mysql_close($lien1);


merci

4 réponses

Avatar
xpatval
ça marche plus...qui, quoi, qu'est-ce, où-ce ?
Un message d'erreur peut-être ?

xpatval

--
xpatval@(oo)wanadoo.fr [Oter le (oo) dans l'adresse]
-----
http://24lemans.free.fr
-----

J'ai une petite question. quelqu'un sait il pourquoi le code suivant ne
fonctionne pas ?

$lien1 = mysql_connect(C_DB_SERVEUR1, C_DB_USER1, C_DB_PASSWORD1);
mysql_select_db(C_DB_BASE1, $lien1);
$requete1 = "SELECT * FROM table_base1";
$resultat1 = mysql_query($requete1);
$champbase1 = mysql_result($resultat1, 0);
=> çà, çà marche

$lien2 = mysql_connect(C_DB_SERVEUR2, C_DB_USER2, C_DB_PASSWORD2);
mysql_select_db(C_DB_BASE2, $lien2);
$requete2 = "SELECT * FROM table_base2";
$resultat2 = mysql_query($requete2);
$champbase2 = mysql_result($resultat2, 0);
=> çà, çà marche

mysql_free_result($resultat2);
mysql_close($lien2);
unset($lien2);

$select_base1 = mysql_select_db(C_DB_BASE1, $lien1);
$resultat1 = mysql_query($requete1);
echo "Valeur de resultat1 : $resultat1 <br>";
$champbase1 = mysql_result($resultat1, 0);
=> là çà ne marche plus !!!

mysql_close($lien1);


merci


Avatar
Marc

Bonjour,

J'ai une petite question. quelqu'un sait il pourquoi le code suivant ne
fonctionne pas ?
...

$select_base1 = mysql_select_db(C_DB_BASE1, $lien1);
$resultat1 = mysql_query($requete1);
echo "Valeur de resultat1 : $resultat1 <br>";
$champbase1 = mysql_result($resultat1, 0);
=> là çà ne marche plus !!!

mysql_close($lien1);


le probleme provient de mysql_query($sql, """"$lien""");

Avatar
_nop_nop_quinton_
voici une petite implémentation objet des fonctions mysql, cette classe
fonctionne bien,
meme si elle n'est pas tres ambitieuse, elle permet de bien demarrer ;
normalement
les erreurs multiples sont affichées et on ne part pas a la derive avec
des connexions
bidons. C'est "multi-base free".

voir les exemples d'utulisation a la fin.

<?php

error_reporting(E_ALL);

define ('C_DB_SERVEUR1', 'localhost');
define ('C_DB_USER1', 'xxxx');
define ('C_DB_PASSWORD1', 'xxxx');
define ('C_DB_BASE1', 'xxxx');

define ('C_DB_SERVEUR2', 'localhost');
define ('C_DB_USER2', 'xxxx');
define ('C_DB_PASSWORD2', 'xxxx');
define ('C_DB_BASE2', 'xxxx');

class Db {
var $db;
var $table;
var $user;
var $password;
var $hostname;

function Db($host, $user, $password, $table){
$this->host = $host;
$this->user = $user;
$this->password = $password;
$this->table = $table;
$this->db = mysql_connect($host, $user, $password) or
$this->error("connect");
mysql_select_db($table, $this->db) or $this->error('select');
}


function query($sql){
$this->sql = $sql;
$this->result = mysql_query($sql, $this->db);
if(!$this->result)
$this->error("Db::query()");
return $this->result;
}

function fetch_array($result, $type = MYSQL_ASSOC){
return mysql_fetch_array($result, $type);
}

function free_result($result = ''){
return mysql_free_result($result);
}

function close(){
return mysql_close($this->db) or $this->error('close');
}

function get_result($sql, $row = 0){
$result = $this->query($sql) or $this->error('query');
return mysql_result($result, $row) or $this->error('result');
}

function get_all($sql){

$result = $this->query($sql) or $this->error('query');
$list = array();

while($row = $this->fetch_array($result)){
$list[] = $row;
}

$this->free_result($result);
return($list);
}

function error($what){
echo "erreur : " . $what . "n";
$msg = mysql_error();
echo "$msgn";
exit(1);
}
}

$db1 = new Db(C_DB_SERVEUR1, C_DB_USER1, C_DB_PASSWORD1, C_DB_BASE1);
$sql = "SELECT * FROM login";
print_r($db1->get_all($sql));
#$db1->close();

$db2 = new Db(C_DB_SERVEUR2, C_DB_USER2, C_DB_PASSWORD2, C_DB_BASE2);
$sql = "SELECT * FROM moa_user WHERE username = 'admin'";
print_r($db2->get_all($sql));
# $db2->close();
# unset($db2);

$sql = "SELECT * FROM login";
print_r($db1->get_all($sql));
$db1->close();
$db2->close();



?>



--
Posté via http://www.webatou.net/
Usenet dans votre navigateur !
Complaints-To:
Avatar
v.ivanoff
Bonjour,

La fonction 'mysql_connect' retourne une ressource correspondant à une
connexion, si tu l'invoques une deuxième fois, par défaut, php te renverra
le même identifiant de ressource ...
Dans ton cas tu n'as en définitive qu'une seule connexion, que tu fermes et
après tout plante ...

Si tu veux ouvrir plusieurs connexions sumultanées il te faut passer un
paramètre supplementaire à 'mysql_connect':
mysql_connect( serveur, user, password, TRUE ), [le TRUE signifiant que tu
veux obtenir une nouvelle connexion...]

Voila tout.
Bon dev ...

a écrit dans le message de news:
chhjib$fqj$
Bonjour,

J'ai une petite question. quelqu'un sait il pourquoi le code suivant ne
fonctionne pas ?

$lien1 = mysql_connect(C_DB_SERVEUR1, C_DB_USER1, C_DB_PASSWORD1);
mysql_select_db(C_DB_BASE1, $lien1);
$requete1 = "SELECT * FROM table_base1";
$resultat1 = mysql_query($requete1);
$champbase1 = mysql_result($resultat1, 0);
=> çà, çà marche

$lien2 = mysql_connect(C_DB_SERVEUR2, C_DB_USER2, C_DB_PASSWORD2);
mysql_select_db(C_DB_BASE2, $lien2);
$requete2 = "SELECT * FROM table_base2";
$resultat2 = mysql_query($requete2);
$champbase2 = mysql_result($resultat2, 0);
=> çà, çà marche

mysql_free_result($resultat2);
mysql_close($lien2);
unset($lien2);

$select_base1 = mysql_select_db(C_DB_BASE1, $lien1);
$resultat1 = mysql_query($requete1);
echo "Valeur de resultat1 : $resultat1 <br>";
$champbase1 = mysql_result($resultat1, 0);
=> là çà ne marche plus !!!

mysql_close($lien1);


merci