Hallow lui,
Ik ben bezig met een berg classes om het proggen alhier wat makkelijker en efficienter te maken.
Ik heb een database-class gemaakt, maar daar heb ik problemen mee.
De class heeft een methode db_connect($database = "", $user = "", $password = "", $host = "") om een connectie naar de MySQL server tot stand te brengen.
Tevens zit er een functie db_query in die een mysql_query uitvoerd en de class voorziet van een resource identifier. Hiermee kan je dmv mysql_fetch_object/array etc spannende dingetjes doen.
Het probleem ontstaat wanneer ik 2 instances van deze class creeer en ieder laat connecten verschillende databases.
$db1 = new db;
$db2 = new db;
$db1->db_connect("localhost", "db_user", "pw", "TCPP_Base");
$db2->db_connect("localhost", "db_user", "pw", "TCPP_MetaDB");
$db1->db_query("SELECT * from tblproperties");
$db2->db_query("SELECT * from tblsystems");
De laatste query geeft een error; de query wordt namelijk uitgevoerd op database TCPP_Base, terwijl dat TCPP_MetaDB had moeten zijn. Op een of andere manier lijkt het dat de link-identifier zich globaal aanpast zodra er een bepaalde database wordt aangesproken. Dit zou volgens mij niet moeten omdat het 2 heel verschillende objecten (en dus link-identifiers/resource-identifiers) zijn.
Het hele zwikkie draait op Redhat7.2/MySQL 3.23.39/Apache 1.3.26 en PHP 4.2.1
Heeft iemand hier ervaring mee? Kan er ergens een PHP-instelling niet goed zijn? Is dit gedrag "by design"?
Bedankt!
Ivo
Ik ben bezig met een berg classes om het proggen alhier wat makkelijker en efficienter te maken.
Ik heb een database-class gemaakt, maar daar heb ik problemen mee.
De class heeft een methode db_connect($database = "", $user = "", $password = "", $host = "") om een connectie naar de MySQL server tot stand te brengen.
Tevens zit er een functie db_query in die een mysql_query uitvoerd en de class voorziet van een resource identifier. Hiermee kan je dmv mysql_fetch_object/array etc spannende dingetjes doen.
Het probleem ontstaat wanneer ik 2 instances van deze class creeer en ieder laat connecten verschillende databases.
$db1 = new db;
$db2 = new db;
$db1->db_connect("localhost", "db_user", "pw", "TCPP_Base");
$db2->db_connect("localhost", "db_user", "pw", "TCPP_MetaDB");
$db1->db_query("SELECT * from tblproperties");
$db2->db_query("SELECT * from tblsystems");
De laatste query geeft een error; de query wordt namelijk uitgevoerd op database TCPP_Base, terwijl dat TCPP_MetaDB had moeten zijn. Op een of andere manier lijkt het dat de link-identifier zich globaal aanpast zodra er een bepaalde database wordt aangesproken. Dit zou volgens mij niet moeten omdat het 2 heel verschillende objecten (en dus link-identifiers/resource-identifiers) zijn.
Het hele zwikkie draait op Redhat7.2/MySQL 3.23.39/Apache 1.3.26 en PHP 4.2.1
Heeft iemand hier ervaring mee? Kan er ergens een PHP-instelling niet goed zijn? Is dit gedrag "by design"?
Bedankt!
Ivo