/ festos/core/MySQL.php
PHP | 209 lines | 75 code | 18 blank | 116 comment | 10 complexity | 21aaacb0d64bf72f628501a840cfbfda MD5 | raw file
Possible License(s): LGPL-2.1, BSD-3-Clause
- <?php
- /**
- * @package SPLIB
- * @version $Id: MySQL.php,v 1.1 2003/12/12 08:06:07 kevin Exp $
- */
- /**
- * MySQL Database Connection Class
- * @access public
- * @package SPLIB
- */
- class MySQL {
- /**
- * MySQL server hostname
- * @access private
- * @var string
- */
- var $host;
- /**
- * MySQL username
- * @access private
- * @var string
- */
- var $dbUser;
- /**
- * MySQL user's password
- * @access private
- * @var string
- */
- var $dbPass;
- /**
- * Name of database to use
- * @access private
- * @var string
- */
- var $dbName;
- /**
- * MySQL Resource link identifier stored here
- * @access private
- * @var string
- */
- var $dbConn;
- /**
- * True/false error switch
- * @access private
- * @var Boolean
- */
- var $connectError;
- /**
- * Stores error messages
- * @access private
- * @var string
- */
- var $errorMsg;
- /**
- * MySQL constructor
- * @param string host (MySQL server hostname)
- * @param string dbUser (MySQL User Name)
- * @param string dbPass (MySQL User Password)
- * @param string dbName (Database to select)
- * @access public
- */
- function MySQL ($host,$dbUser,$dbPass,$dbName) {
- $this->host=$host;
- $this->dbUser=$dbUser;
- $this->dbPass=$dbPass;
- $this->dbName=$dbName;
- $this->errorMsg='';
- $this->connectToDb();
- }
- /**
- * Establishes connection to MySQL and selects a database
- * @return void
- * @access private
- */
- function connectToDb () {
- // Make connection to MySQL server
- if (!$this->dbConn = @mysql_connect($this->host,
- $this->dbUser,
- $this->dbPass)) {
- $this->connectError=true;
- $this->errorMsg .= 'Could not connect to server';
- // Select database
- } else if ( !@mysql_select_db($this->dbName,$this->dbConn) ) {
- $this->connectError=true;
- $this->errorMsg .= 'Could not select database';
- }
- }
- /**
- * Checks for MySQL errors
- * @return boolean
- * @access public
- */
- function isError () {
- if ( $this->connectError )
- return true;
- $this->errorMsg .= mysql_error ($this->dbConn);
- if ( empty ($error) )
- return false;
- else
- return true;
- }
- /**
- * Returns an instance of MySQLResult to fetch rows with
- * @param $sql string the database query to run
- * @return MySQLResult
- * @access public
- */
- function & query($sql) {
- if (!$queryResource=mysql_query($sql,$this->dbConn))
- trigger_error ('Query failed: '.mysql_error($this->dbConn).
- ' SQL: '.$sql);
- return new MySQLResult($this,$queryResource);
- }
- }
- /**
- * MySQLResult Data Fetching Class
- * @access public
- * @package SPLIB
- */
- class MySQLResult {
- /**
- * Instance of MySQL providing database connection
- * @access private
- * @var MySQL
- */
- var $mysql;
- /**
- * Query resource
- * @access private
- * @var resource
- */
- var $query;
- /**
- * MySQLResult constructor
- * @param object mysql (instance of MySQL class)
- * @param resource query (MySQL query resource)
- * @access public
- */
- function MySQLResult(& $mysql,$query) {
- $this->mysql=& $mysql;
- $this->query=$query;
- }
- /**
- * Fetches a rowFROM ".$config['dbprefix']."the result
- * @return array
- * @access public
- */
- function fetch () {
- if ( $row=mysql_fetch_array($this->query,MYSQL_ASSOC) ) {
- return $row;
- } else if ( $this->size() > 0 ) {
- mysql_data_seek($this->query,0);
- return false;
- } else {
- return false;
- }
- }
- /**
- * Returns the number of rows selected
- * @return int
- * @access public
- */
- function size () {
- return mysql_num_rows($this->query);
- }
- /**
- * Returns the number of rows affected by a DELETE, INSERT, REPLACE, or UPDATE statement
- * @return int
- * @access public
- */
- function affected () {
- return mysql_affected_rows($this->mysql->dbConn);
- }
- /**
- * Returns the ID of the last row inserted
- * @return int
- * @access public
- */
- function insertID () {
- return mysql_insert_id($this->mysql->dbConn);
- }
-
- /**
- * Checks for MySQL errors
- * @return boolean
- * @access public
- */
- function isError () {
- return $this->mysql->isError();
- }
- }
- ?>