Jump to content

[SOLVED] Creating 2 instance of class and accessing next result set


Curlyfreak

Recommended Posts

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.

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.

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.