In het kort een uitleg over de classes:
Class 1: maakt verbinding met een boekhoudpakket via een ODBC connectie, kan verschillende queries uitvoeren en deze classe wordt enkel gebruikt voor functionaliteit die ik nodig heb uit het boekhoud pakket. Dit is eigenlijk alleen maar lezen.
Class 2: Hierin zitten alle functionaliteiten welke gebruikt worden voor onderdeel A in de website. Deze betrekt zijn gegevens uit een MySQL database en soms ook een connectie via Class1 met het boekhoudpakket.
Class 3: Eigenlijk hetzelfde als class 2, echter nu voor functionaliteit van onderdeel B.
Het probleem is nu als volgt:
Zodra ik Class 3 gebruik (bijvoorbeeld), kan het zijn dat ik een verbinding opzet met MySQL, waarvan ik de gegevens hieruit gebruik om een functie in Class 2 aan te roepen, welke ook weer een verbinding maakt met MySQL. Echter, ik heb netjes constructors en destructors aangemaakt in alle 3 de classes, welke netjes de DB-verbinding afsluit. Echter, zodra ik in class2 'klaar ben', sluit hij de verbinding af, maar daardoor ook de verbinding met MySQL die in Class3 opgebouwd is. Een melding in de trand van
Uiteraard heb ik de $db-variabele voor alle classes verschillend gemaakt, om te kijken of daar het probleem zich bevond. Dit bood geen uitkomst. $db-identifiers worden aangeroepen op de manier waarop het volgens mij hoort ($this->db, aangezien het een class-var is die binnen deze classe geldt).
Wat moet ik nu doen om de fouten eruit te krijgen.
1. Een compleet nieuw classe-model schrijven, waarin ik voor elke database een aparte class schrijf?
2. Een compleet nieuwe classe-model schrijven, waarin ik in 1 class slechts verbinding maak met 1 database?
3. iets anders, waar jullie waarschijnlijk wel iets slims op weten.
Ik vermoed dat dit niet persee een PHP denkstuk is, maar dat dit een manier van programmeren is, die bijvoorbeeld ook in C# gebruikt kan worden. Echter, ik werk nu in PHP, dus vandaar in de TopicTitel [php].
Ik ben benieuwd, want het is erg vervelend zo. Op dit moment los ik het namelijk op met een @ voor de mysql_close_db($this->db) functie.
Class 1: maakt verbinding met een boekhoudpakket via een ODBC connectie, kan verschillende queries uitvoeren en deze classe wordt enkel gebruikt voor functionaliteit die ik nodig heb uit het boekhoud pakket. Dit is eigenlijk alleen maar lezen.
Class 2: Hierin zitten alle functionaliteiten welke gebruikt worden voor onderdeel A in de website. Deze betrekt zijn gegevens uit een MySQL database en soms ook een connectie via Class1 met het boekhoudpakket.
Class 3: Eigenlijk hetzelfde als class 2, echter nu voor functionaliteit van onderdeel B.
Het probleem is nu als volgt:
Zodra ik Class 3 gebruik (bijvoorbeeld), kan het zijn dat ik een verbinding opzet met MySQL, waarvan ik de gegevens hieruit gebruik om een functie in Class 2 aan te roepen, welke ook weer een verbinding maakt met MySQL. Echter, ik heb netjes constructors en destructors aangemaakt in alle 3 de classes, welke netjes de DB-verbinding afsluit. Echter, zodra ik in class2 'klaar ben', sluit hij de verbinding af, maar daardoor ook de verbinding met MySQL die in Class3 opgebouwd is. Een melding in de trand van
code:
1
| $db is not a valid MySQL-link identifier. |
Uiteraard heb ik de $db-variabele voor alle classes verschillend gemaakt, om te kijken of daar het probleem zich bevond. Dit bood geen uitkomst. $db-identifiers worden aangeroepen op de manier waarop het volgens mij hoort ($this->db, aangezien het een class-var is die binnen deze classe geldt).
Wat moet ik nu doen om de fouten eruit te krijgen.
1. Een compleet nieuw classe-model schrijven, waarin ik voor elke database een aparte class schrijf?
2. Een compleet nieuwe classe-model schrijven, waarin ik in 1 class slechts verbinding maak met 1 database?
3. iets anders, waar jullie waarschijnlijk wel iets slims op weten.
Ik vermoed dat dit niet persee een PHP denkstuk is, maar dat dit een manier van programmeren is, die bijvoorbeeld ook in C# gebruikt kan worden. Echter, ik werk nu in PHP, dus vandaar in de TopicTitel [php].
Ik ben benieuwd, want het is erg vervelend zo. Op dit moment los ik het namelijk op met een @ voor de mysql_close_db($this->db) functie.