[ clandestino @ 28.04.2006. 14:14 ] @
Instalirao sam na Windows XP:

* Apache HTTP Server 2.055
* php 4.4.2
* MySQL Server 4.1.18
* ZendOptimizer 2.6.2


Imam sledeci problem:

u php kodu koristim dve konekcije na dve baze na istom serveru:

$db_connect i $db_connect2, na baze database_1 i database_2.
(dve konekcije su uvedene da ne bi morala stalno da se radi promena baza - pomocu mysql_select_db() -
vec da se koristi konekcija ka odgovarajucoj bazi kod komandi citanja/pisanja
)
Na pocetku imam kod:

$db_connection1 = mysql_connect("localhost","user","pass");
mysql_select_db("database_1", $db_connection1);

$db_connection2 = mysql_connect("localhost","user","pass");
mysql_select_db("database_2", $db_connection2);



$query_1 = "select * from knjige";//tabela knjige se u bazi database_1
$result_1 = mysql_query($query_1, $db_connection1) or die("Greska: baza 1!".mysql_error());
$row = mysql_fetch_array($result_1);
//i bez problema se pristupa podacima
...
...


Tako da ako prvo pristupam database_1 bazi, sve sljaka kako treba, ali
ako odmah posle toga imam upitnik

//... nastavak prethodnog koda

$query_2 = "select * from podaci";
$result_2 = mysql_query($query_2, $db_connection2) or die("Greska: baza 2!".mysql_error());


dobijam gresku:
//tabela podaci postoji samo u database_2...

Table 'database_1.podaci' doesn't exist

tako da kada prelazim sa jedne na drugu bazu (konkretno:sa database_1 na database_2),
moram pre upitnika da ubacujem mysql_select_db("database_2"):


mysql_select_db("e_commerce", $db_connection2) or die("Nisam se konektovao na server");

$result = mysql_query($select_xl, $db_connection2) or die("Greska: baza 2!".mysql_error());


Da li postoji neko drugo resenje(podesavanje, ne znam, npr. mysql-a, php-a...???), bilo sta, kako
bih mogao da radim promenu baze pri upisu/citanju, bez upotrebe mysql_select_db() ...

Pozdrav!

[Ovu poruku je menjao Gojko Vujovic dana 28.04.2006. u 18:14 GMT+1]
[ SmilieBG @ 28.04.2006. 16:04 ] @
Koliko ja znam - ne... Jer php mora da zna, koju bazu da koristi u komunikaciji sa mysql serverom :)
Eventualno, mogao bi da napises kod koji bi podefaultu koristio db1, a explicitno (sa mysql_select_db) koristio drugu... Mada ti to dodje na isto :)

Ne vidim treci nacin...

PS. zasto 2 baze?! :S

Poz,
Sale
[ afwt @ 28.04.2006. 17:07 ] @
Da bi koristio vise odvojenih konekcija na bazu, moras se pridrzavati dve stvari:
1. uvek otvaraj mysql_connect() sa cetvrtim parametrom "true" (mogao bi prvo procititati http://www.php.net/mysql_connect )
2. uvek stavljaj resource link kao drugi parametar u mysql_query()

Primer:
$prva = mysql_connect('localhost', 'root', 'pass', true);
$druga = mysql_connect('localhost', 'root', 'pass', true); // da, dve konekcije na istu bazu
$upitIzPrve = mysql_query("SELECT NOW()", $prva);
$upitIzDruge = mysql_query("SELECT NOW()", $druga);


I radice ti kako god hoces. ;-)
[ Davor Grubelić @ 28.04.2006. 17:54 ] @
pa probaj skinuti php 5.1.2. to je zadnja verzija.
i kada nešto napraviš sa jednom konekcijom, zatvoriš ju. to isto i sa drugom. ako ti već spajanje pravi probleme.