• Main Page
  • Related Pages
  • Namespaces
  • Classes
  • Files
  • Examples
  • File List

system/classes/db.php

00001 <?php
00007 namespace Habari;
00008 
00015 class DB extends Singleton
00016 {
00020   private $connection = null;
00021 
00028   protected static function instance()
00029   {
00030     return self::getInstanceOf( __CLASS__ );
00031   }
00032 
00043   public static function connect()
00044   {
00045     /*
00046       if connection has been instantiated (ie: not null), check if is already connected
00047     */
00048     if ( null != DB::instance()->connection ) {
00049       if ( (func_num_args() == 0) && false != DB::instance()->connection->is_connected() ) {
00050         return true;
00051       }
00052     }
00053 
00054     if ( func_num_args() > 0 ) {
00055       $connect_string = func_get_arg( 0 );
00056       $db_user = func_get_arg( 1 );
00057       $db_pass = func_get_arg( 2 );
00058     }
00059     else {
00060       /* We use the config.php variables */
00061       $connect_string = Config::get( 'db_connection' )->connection_string;
00062       $db_user = Config::get( 'db_connection' )->username;
00063       $db_pass = Config::get( 'db_connection' )->password;
00064     }
00065     DB::instance()->connection = DatabaseConnection::ConnectionFactory( $connect_string );
00066     if ( null != DB::instance()->connection ) {
00067       return DB::instance()->connection->connect( $connect_string, $db_user, $db_pass );
00068     }
00069     else {
00070       // do some error handling here. The connect string does not have a corresponding DB connection object
00071       print _t( 'Panic! No database connection class appears to be found for the connection string specified. Please check config.php' );
00072     }
00073   }
00074 
00075   public static function disconnect()
00076   {
00077     if ( null == DB::instance()->connection ) {
00078       return true;
00079     }
00080 
00081     return DB::instance()->connection->disconnect();
00082   }
00083 
00090   public static function table( $name )
00091   {
00092     return DB::instance()->connection->table( $name );
00093   }
00094 
00102   public static function register_table( $name )
00103   {
00104     DB::instance()->connection->register_table( $name );
00105   }
00106 
00112   public static function set_fetch_mode( $mode )
00113   {
00114     DB::instance()->connection->set_fetch_mode( $mode );
00115   }
00116 
00122   public static function set_fetch_class( $class_name )
00123   {
00124     DB::instance()->connection->set_fetch_class( $class_name );
00125   }
00126 
00135   public static function exec( $query )
00136   {
00137     return DB::instance()->connection->exec( $query );
00138   }
00139 
00146   public static function query( $query, $args = array() )
00147   {
00148     return DB::instance()->connection->query( $query, $args );
00149   }
00150 
00160   public static function execute_procedure( $procedure, $args = array() )
00161   {
00162     return DB::instance()->connection->execute_procedure( $procedure, $args );
00163   }
00164 
00169   public static function begin_transaction()
00170   {
00171     DB::instance()->connection->begin_transaction();
00172   }
00173 
00179   public static function rollback()
00180   {
00181     DB::instance()->connection->rollback();
00182   }
00183 
00187   public static function commit()
00188   {
00189     DB::instance()->connection->commit();
00190   }
00191 
00197   public static function get_profiles()
00198   {
00199     return DB::instance()->connection->get_profiles();
00200   }
00201 
00207   private static function add_error( $error )
00208   {
00209     DB::instance()->connection->add_error( $error );
00210   }
00211 
00216   public static function get_errors()
00217   {
00218     return DB::instance()->connection->get_errors();
00219   }
00220 
00225   public static function has_errors()
00226   {
00227     return DB::instance()->connection->has_errors();
00228   }
00229 
00233   public static function clear_errors()
00234   {
00235     DB::instance()->connection->clear_errors();
00236   }
00237 
00242   public static function get_last_error()
00243   {
00244     return DB::instance()->connection->get_last_error();
00245   }
00246 
00255   public static function get_results( $query, $args = array(), $class_name = '\Habari\QueryRecord' )
00256   {
00257     return DB::instance()->connection->get_results( $query, $args, $class_name );
00258   }
00259 
00268   public static function get_row( $query, $args = array(), $class_name = '\Habari\QueryRecord' )
00269   {
00270     return DB::instance()->connection->get_row( $query, $args, $class_name );
00271   }
00272 
00281   public static function get_column( $query, $args = array() )
00282   {
00283     return DB::instance()->connection->get_column( $query, $args );
00284   }
00285 
00293   public static function get_value( $query, $args = array() )
00294   {
00295     return DB::instance()->connection->get_value( $query, $args );
00296   }
00297 
00306   public static function get_keyvalue( $query, $args = array() )
00307   {
00308     return DB::instance()->connection->get_keyvalue( $query, $args );
00309   }
00310 
00318   public static function insert( $table, $fieldvalues )
00319   {
00320     return DB::instance()->connection->insert( $table, $fieldvalues );
00321   }
00322 
00330   public static function exists( $table, $keyfieldvalues )
00331   {
00332     return DB::instance()->connection->exists( $table, $keyfieldvalues );
00333   }
00334 
00345   public static function update( $table, $fieldvalues, $keyfields )
00346   {
00347     return DB::instance()->connection->update( $table, $fieldvalues, $keyfields );
00348   }
00349 
00357   public static function delete( $table, $keyfields )
00358   {
00359     return DB::instance()->connection->delete( $table, $keyfields );
00360   }
00361 
00371   public static function last_insert_id()
00372   {
00373     return DB::instance()->connection->last_insert_id( func_num_args() == 1 ? func_get_arg( 0 ) : '' );
00374   }
00375 
00381   public static function row_count()
00382   {
00383     return DB::instance()->connection->row_count();
00384   }
00385 
00395   public static function dbdelta( $queries, $execute = true, $silent = true, $doinserts = false )
00396   {
00397     return DB::instance()->connection->dbdelta( $queries, $execute, $silent, $doinserts );
00398   }
00399 
00406   public static function upgrade( $old_version )
00407   {
00408     return DB::instance()->connection->upgrade( $old_version );
00409   }
00410 
00414   public static function upgrade_pre( $old_version )
00415   {
00416     return DB::instance()->connection->upgrade_pre( $old_version );
00417   }
00418 
00422   public static function upgrade_post( $old_version )
00423   {
00424     return DB::instance()->connection->upgrade_post( $old_version );
00425   }
00426 
00430   public static function get_driver_name()
00431   {
00432     return DB::instance()->connection->get_driver_name();
00433   }
00434 
00438   public static function get_driver_version()
00439   {
00440     return DB::instance()->connection->get_driver_version();
00441   }
00442 
00448   public static function list_tables()
00449   {
00450     return DB::instance()->connection->list_tables();
00451   }
00452 
00458   public static function is_connected()
00459   {
00460     return (DB::instance()->connection instanceof DatabaseConnection && DB::instance()->connection->is_connected());
00461   }
00462 
00468   public static function in_transaction()
00469   {
00470     return DB::instance()->connection->in_transaction();
00471   }
00472 
00481   public static function quote( $string )
00482   {
00483     return DB::instance()->connection->quote( $string );
00484   }
00485 }
00486 
00487 ?>

Generated on Sun Aug 4 2013 12:51:43 for Habari by  doxygen 1.7.1