Jump to content

dark_messenger84

New Members
  • Posts

    6
  • Joined

  • Last visited

    Never

Posts posted by dark_messenger84

  1. Apologies for the upper case, that's just my own personal coding style. Anyway, here's the DB_INTERFACE class definition.

     

    <?php
    class DB_INTERFACE {
    
    // This interfacing library only permits one database connection
    // at a time in order to reserve system resources and processor power
    
    // In order to maintain database efficiency, a brand spanking new connection will be created when a
    // previous connection is closed, this is done through the means of assigning the connection to an array
    // variable, so that when a new connection is created it will be appended to the end of the array.
    
    // Current database connection status parameters;
    
    private $_CONNECTION_ID; // Integer variable containing the current connection ID;
    private $_CONNECTION_LINK; // Resource array variable that contains the parameters to the database connection;
    private $_CONNECTION_ERROR; // String variable that contains the current error, should there be one;
    
    // Cureent database query paramters;
    
    private $_QUERY_SQL; // String variable containing the SQL to be executed;
    public $_QUERY_QRY; // Resource variable containing the result to the query;
    public $_QUERY_ROW;
    
    // Method to free the database resource links and results and to unset the member variables and finally free memory;
    
    public function db_free_result() {
    	if (isset($this->_QUERY_QRY)) {
    		mysql_free_result($this->_QUERY_QRY);
    	}
    }
    
    // Checks to see if a connection is already open;
    
    public function db_is_conn_open() {
    	if ($this->_CONNECTION_LINK[$this->_CONNECTION_ID] == TRUE) {
    		return true;
    	} else {
    		return false;
    	}
    }
    
    private function db_opn_conn() {
    	// Open an non-existant connection, providing one isn't already open
    	if (empty($this->_CONNECTION_LINK[$this->_CONNECTION_ID])) {
    		$this->_CONNECTION_LINK[$this->_CONNECTION_ID] = mysql_connect(MYSQL_HOSTNAME, MYSQL_USERNAME, MYSQL_PASSWORD) or $this->_CONNECTION_ERROR = mysql_error();
    		if (isset($this->_CONNECTION_ERROR)) {
    			echo $this->_CONNECTION_ERROR;
    			unset($this->_CONNECTION_ERROR);
    			$this->db_cls_conn();
    			return false;
    		} else {
    			return true;
    		}
    	} else {
    		// Throw an error is an attempt was made to open a new connection when one is already open;
    		?><p>Error: Cannot open a new MySQL database connection, one already exists.</p><?php
    		return false;
    	}
    }
    
    // Close an already open connection;
    
    private function db_cls_conn() {
    	if (!empty($this->_CONNECTION_LINK[$this->_CONNECTION_ID])) {
    		// Close an existing connection, and increment the $_CONNECTION_ID variable by one;
    		mysql_close($this->_CONNECTION_LINK[$this->_CONNECTION_ID]) or $this->_CONNECTION_ERROR = mysql_error();
    		// Output an error if there is one, else continue;
    		if (isset($this->_CONNECTION_ERROR)) {
    			echo $this->_CONNECTION_ERROR;
    			unset($this->_CONNECTION_ERROR);
    			return false;
    		} else {
    			$this->_CONNECTION_LINK[$this->_CONNECTION_ID] = NULL;
    			$this->_CONNECTION_ID++;
    			return true;
    		}
    	} else {
    		// Throw an error if an attempt was made to close a non-existant connection;
    		?><p>Error: Cannot close a non-existant MySQL database connection.</p><?php
    		return false;
    	}
    }
    
    // Open or close a database connection
    
    // This method is the one to be called when opening or closing
    // a connection to the database as it will be automatically
    // determine whether or not a connection is already open, and
    // thus will open or close a single connection to the database.
    
    public function db_connect() {
    	if (!isset($this->_CONNECTION_ID)) {
    		$this->_CONNECTION_ID = 0;
    	}
    	if (!empty($this->_CONNECTION_LINK[$this->_CONNECTION_ID])) {
    		$this->db_cls_conn();
    	} else {
    		$this->db_opn_conn();
    	}
    }
    
    // Report current connection and server status;
    
    public function db_report_conn_stat() {
    	if ($this->_CONNECTION_LINK[$this->_CONNECTION_ID] == TRUE) {
    		// If the connection is active...
    		?><p>Notice: A connection to the MySQL database at '<?php echo MYSQL_HOSTNAME;?>' is valid and open.<br />
    		Current MySQL database server system status will now be displayed below this message.</p><?php
    		$status = explode("  ", mysql_stat($this->_CONNECTION_LINK[$this->_CONNECTION_ID]));
    		for ($i = 0; $i < count($status); $i++) {
    			echo ($i == 0) ? $status[$i] : "<br />\n" . $status[$i];
    		}
    		$this->db_report_conn_count();
    	} else {
    		// If the connection is inactive...
    		?>
    		<p>Error: There seems to be a problem regarding the connection to the MySQL database at '<?php echo MYSQL_HOSTNAME;?>'.<br />
    		Please make certain that the database server is running and/or your connection parameters are correct and try again.</p>
    		<?php
    	}
    }
    
    // Report current connection count
    
    public function db_report_conn_count() {
    	?><p><?php echo $this->_CONNECTION_ID;?> individual database connection(s) made to generate this page.</p><?php
    }
    
    // Fetch data from a specific table in the database;
    
    public function _SITE_DB_INTERFACE_OBJ($_TABLE, $_QUERY) {
    	if ($this->db_is_conn_open()) {
    		// Access a database;
    		mysql_select_db($_TABLE) or $this->_CONNECTION_ERROR = mysql_error();
    		// Output an error if there is one, else continue;
    		if (isset($this->_CONNECTION_ERROR)) {
    			echo $this->_CONNECTION_ERROR;
    			unset($this->_CONNECTION_ERROR);
    			return false;
    		} else {
    			// Access a specific table and/or row in the database and then store the resource link in the object's member variable;
    			$this->_QUERY_SQL = $_QUERY;
    			$this->_QUERY_QRY = mysql_query(mysq_real_escape_string($this->_QUERY_SQL)) or $this->_CONNECTION_ERROR = mysql_error();
    			echo $this->_CONNECTION_ERROR;
    			return true;
    		}
    	}
    }
    
    public function __destruct() {
    	unset($this->_CONNECTION_ID, $this->_CONNECTION_LINK, $this->_CONNECTION_ERROR, $this->_QUERY_SQL, $this->_QUERY_QRY);
    	return true;
    }
    }
    ?>
    

  2. This code is giving me a headache...

     

    <?php
    class SITE {
    
    public $_SITE_DB_INTERFACE_OBJ;
    public $_SITE_GLOBAL_CONSTANTS;
    
    private function load_dependencies() {
    	REQUIRE_ONCE("lib/lib_constants.php");
    	$this->_SITE_GLOBAL_CONSTANTS = new CONSTANTS;
    	REQUIRE_ONCE(PATH_TO_LIB_DIR . "lib_mysql.php");
    	$this->_SITE_DB_INTERFACE_OBJ = new DB_INTERFACE;
    }
    
    public function __construct() {
    	$this->load_dependencies();
    } 
    }
    
    $SITE = new SITE;
    $SITE->_SITE_DB_INTERFACE_OBJ->db_execute_sql("website","SELECT * FROM site_articles WHERE article_shortcut='test_article'");
    ?>
    

     

    The last line returns the following error:

    PHP Fatal error:  Call to undefined method DB_INTERFACE::db_execute_sql() in C:\\Program Files\\Apache Software Foundation\\Apache2.2\\htdocs\\v2\\index.php on line 68

     

    As in the above code, I would like to be able to access the DB_INTERFACE methods contained in the SITE class member variable of $_SITE_GLOBAL_CONSTANTS; But PHP tells me that the said method is undefined. Tell me, is any special syntax to be used in order to use the methods of an object assigned to a member variable of another object?

     

    Thanks in advance.

     

    -Dave

  3. I'm not sure about the connection code in the installation script, I daren't tamper with that... PHP.net tells me to enable an extension in my configuration and following that, correct connection settings... in which I have done and also add a client library file to the Win XP path in which I have done, and to make sure things are working correctly I downloaded the up-to-date PHP connector extensions from MySQL.com.
×
×
  • 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.