download this file: class.mysql.dbs.php view text/plain: class.mysql.dbs.php file encoding: UTF-8 [goback]
<?php
##
## this file name is 'class.mysql.dbs.php'
##
## mysql object
##
## [author]
##  - Chilbong Kim<san2(at)linuxchannel.net>
##
## [changes]
##  - 2005.03.09 : fixed extra
##  - 2004.07.07 : add multi-object
##  - 2003.07.19 : add get_count()
##  - 2003.07.11 : check is_array()
##  - 2003.06.11 : rename 'dbs' to 'mysql'
##  - 2003.03.05 : new build
##
## [references]
##
## [example]
##  require_once 'class.mysql.dbs.php';
##  $mysql = new mysql; // none debug mode
##  $mysql->connect('localhost','user','passwd');
##  $mysql->select_db('dbname');
##  $result = $mysql->query('....');
##  ...
##  $mysql->close();
##

class mysql
{
  var 
$debug FALSE;    // boolean, 1(true), 0(false), debug mode
  
var $link;        // resource link_identifier
  
var $host;
  var 
$user;
  var 
$dbname '';    // string, selected database name

  ## set debug mode
  ##
  
function &mysql($debug=0)
  {
    
$this->debug $debug;
  }

  
## mysql connect
  ##
  ## return :
  ##    $resource    resource id
  ##
  
function &connect($host$user$passwd$dbname='')
  {
    
define('__SQLSTART__',microtime());

    
$this->host $host;
    
$this->user $user;
    
$this->link = @mysql_connect($host,$user,$passwd);
    
$this->error(mysql_errno(),mysql_error(),'connect()');

    if(
$dbname$this->select_db($dbname);

    return 
$this->link;
  }

  
## mysql persistent connection to MySQL server
  ##
  
function &pconnect($host$user$passwd$dbname='')
  {
    
define('__SQLSTART__',microtime());

    
$this->host $host;
    
$this->user $user;
    
$this->link = @mysql_pconnect($host,$user,$passwd);
    
$this->error(mysql_errno(),mysql_error(),'pconnect()');

    if(
$dbname$this->select_db($dbname);

    return 
$this->link;
  }

  
## mysql close
  ##
  
function &close($link='')
  {
    
$link $link $link $this->link;
    
$result = @mysql_close($link);
    
$this->error(mysql_errno(),mysql_error(),'close()');

    
define('__SQLEND__',microtime());

    return 
$result// boolean
  
}

  
## mysql result
  ##
  
function &result($result$row$field)
  {
    
$mixed = @mysql_result($result,$row,$field);
    
$this->error(mysql_errno(),mysql_error(),'result()');

    return 
$mixed;
  }

  
## mysql select db
  ##
  
function &select_db($dbname)
  {
    
$this->dbname $dbname;
    
$result = @mysql_select_db($this->dbname,$this->link);
    
$this->error(mysql_errno(),mysql_error(),'select_db()');

    return 
$result// boolean
  
}

  
## mysql query
  ##
  
function &query($sql)
  {
    
$result = @mysql_query($sql,$this->link);
    
$this->error(mysql_errno(),mysql_error(),"query($sql)");

    return 
$result;
  }

  
## mysql query
  ##
  
function &db_query($dbname$sql)
  {
    
$result = @mysql_db_query($dbname,$sql,$this->link);
    
$this->error(mysql_errno(),mysql_error(),"db_query($sql)");

    return 
$result;
  }

  
## mysql free result
  ##
  
function &free_result($result)
  {
    
$result = @mysql_free_result($result);
    
$this->error(mysql_errno(),mysql_error(),'free_result()');

    return 
$result;
  }

  
## alias
  ##
  
function &freeresult($result)
  {
    return 
$this->free_result($result);
  }

  
## mysql fetch array
  ##
  
function &fetch_array($result)
  {
    
$array = @mysql_fetch_array($result);
    
$this->error(mysql_errno(),mysql_error(),'fetch_array()');

    return 
$array;
  }

  
## mysql fetch row
  ##
  
function &fetch_row($result)
  {
    
$array = @mysql_fetch_row($result);
    
$this->error(mysql_errno(),mysql_error(),'fetch_row()');

    return 
$array;
  }

  
## mysql fetch assoc
  ##
  
function &fetch_assoc($result)
  {
    
$array = @mysql_fetch_assoc($result);
    
$this->error(mysql_errno(),mysql_error(),'fetch_assoc()');

    return 
$array;
  }

  
## mysql fetch object
  ##
  
function &fetch_object($result)
  {
    
$object = @mysql_fetch_object($result);
    
$this->error(mysql_errno(),mysql_error(),'fetch_object()');

    return 
$object;
  }

  
## mysql list dbs
  ##
  
function &list_dbs($link='')
  {
    
$result = @mysql_list_dbs($link $link $this->link);
    
$this->error(mysql_errno(),mysql_error(),'list_dbs()');

    return 
$result;
  }

  
## mysql data seek
  ##
  
function &data_seek($result$number)
  {
    
$boolean = @mysql_data_seek($result,$number);
    
$this->error(mysql_errno(),mysql_error(),'data_seek()');

    return 
$boolean;
  }

  
## mysql list tables
  ##
  
function &list_tables($dbname='')
  {
    
$result = @mysql_list_tables($dbname $dbname $this->dbname,$this->link);
    
$this->error(mysql_errno(),mysql_error(),'list_tables()');

    return 
$result;
  }

  
## mysql get list tables
  ##
  
function &get_list_tables($dbname='')
  {
    
$result $this->list_tables($dbname);

    if(
$result)
    {
        while(
$table $this->fetch_row($result))
        { 
$tables[] = $table[0]; }

        
$this->free_result($result);
    }

    return 
$tables// array
  
}

  
## mysql check table exist
  ##
  
function &table_exists($table$dbname='')
  {
    
$tables $this->get_list_tables($dbname);
    if(
$tables && is_array($tables)) $check = @in_array($table,$tables);
    unset(
$tables);

    return (boolean)
$check// boolean
  
}

  
## mysql num rows
  ##
  
function &num_rows($result)
  {
    
$rows = @mysql_num_rows($result) + 0;
    
$this->error(mysql_errno(),mysql_error(),'num_rows()');

    return 
$rows// integer
  
}

  
## get count of rows
  ##
  
function &get_count($table$where='')
  {
    if(
$where$sql ' WHERE 'preg_replace('/^\s*WHERE\s*/i','',$where);

    
$sql 'SELECT COUNT(*) FROM '.$table.$sql;
    
$result $this->query($sql);
    
$rows $this->result($result,0,0) + 0;
    
$this->free_result($result);

    return 
$rows// integer
  
}

  
## alias
  ##
  
function &get_rows($table$where='')
  {
    return 
$this->get_count($table,$where);
  }

  
## mysql error report
  ##
  
function &error($errno$error$func)
  {
    if(
$this->debug && $errno)
    { echo 
'ERRNO('.$errno .') : '.$error.' : '.$func.' in '.__FILE__."<BR>\n"; }
  }
// end of class

?>