Curlyfreak Posted September 20, 2009 Share Posted September 20, 2009 Hi Guys, I am stuck with something, may be very simple for you guys to solve. May be some basics PHP 5. I have a DataAccessLayer.class.php, BusinessLayer.class.php, Config.class.php, customException.class.php and Testing1.php(which is my UI). Query: 1. When I tried to 2 instance of my BusinessLayer in my Testing.php first instance gets created without any problem, but not able to create the 2 instance. 2. When I tried to add the customException.class.php to my BusinessLayer.class.php it breaks down. 3. Not able to access my next result after function call below is my code. ----------------------------------------------------------------------------------------------------- class DataAccessLayer { private $connect_mysqli; public function __construct() { include 'CustomException.class.php'; $this->DatabaseConnectionObject(); } /* DatabaseConnectionObject creates database connection objects */ private function DatabaseConnectionObject() { try { include 'Config.class.php'; $this->connect_mysqli = new mysqli($Config_HostName,$Config_UserName,$Config_Password,$Config_Database); if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); } else { printf("Connect successful"); } } catch(customException $ex) { $ex->ProcessErrorMessage(); } } /* ExecuteSP is for obtaining data by passing stored procedure names */ public function ExecuteSP($StoredProcedureName) { try { return $this->connect_mysqli->query("CALL ".$StoredProcedureName."()"); } catch(customException $ex) { $ex->ProcessErrorMessage(); } } } ----------------------------------------------------------------------------------------------------- class customException extends Exception { public function ProcessErrorMessage() { include 'FileOperations.class.php'; $errorMsg = " \r\n ".'Error on file : '.$this->getFile()." \r\n ".'Error on line : '.$this->getLine()." \r\n ".'Error Message : '.$this->getMessage()." \r\n ".'Error date : '.time()." \r\n "; $FileOperation = new FileOperations(); $this->$FileOperation->WriteErrorLog($errorMsg); } } ----------------------------------------------------------------------------------------------------- class BusinessLayer { private $objDataAccessLayer; public function __construct() { //include 'CustomException.class.php'; // when I include this file it gives error $this->Initalize(); } private function Initalize() { include 'DataAccessLayer.class.php'; $this->objDataAccessLayer = new DataAccessLayer(); } public function GetCityByState($ParamArray) { try { return $this->objDataAccessLayer->ExecuteSPwithParameters('SP Name',$ParamArray); } catch(customException $ex) { $ex->ProcessErrorMessage(); } } public function GetCountry() { try { return $this->objDataAccessLayer->ExecuteSP('SP name'); } catch(customException $ex) { $ex->ProcessErrorMessage(); } } } ----------------------------------------------------------------------------------------------------- Testing1.php include 'BusinessLayer.class.php'; $newtest = new BusinessLayer(); $resultset = $newtest->GetCityByState($testarray); // process the $resultset $resultset1 = $newtest->GetCountry(); print 'query 2 - 1'; // It works fine perfectly up till here. (May be it's not providing the next result set to process - that's my guess). // process the $resultset ----------------------------------------------------------------------------------------------------- Please let me know what am I doing wrong. Thanks in advance. Link to comment https://forums.phpfreaks.com/topic/174895-solved-creating-2-instance-of-class-and-accessing-next-result-set/ Share on other sites More sharing options...
ignace Posted September 20, 2009 Share Posted September 20, 2009 I have a DataAccessLayer.class.php, BusinessLayer.class.php When you develop your application to be seperated amongst different layers/tiers to be independently developed of each other doesn't mean you will have a class named after the tier/layer. The same misconception exists amongst the MVC pattern where people believe you have 3 classes: Controller, View and Model while each usually contains multiple classes in each tier. 1. When I tried to 2 instance of my BusinessLayer in my Testing.php first instance gets created without any problem, but not able to create the 2 instance. is because of include 'DataAccessLayer.class.php'; use include_once() 2. When I tried to add the customException.class.php to my BusinessLayer.class.php it breaks down. because you didn't include it: //include 'CustomException.class.php'; // when I include this file it gives error 3. Not able to access my next result after function call solve the previous 2 and this should work. Link to comment https://forums.phpfreaks.com/topic/174895-solved-creating-2-instance-of-class-and-accessing-next-result-set/#findComment-921700 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.