API15:JDatabase/getInstance
From Joomla! Documentation
This Namespace has been archived - Please Do Not Edit or Create Pages in this namespace. Pages contain information for a Joomla! version which is no longer supported. It exists only as a historical reference, will not be improved and its content may be incomplete.
Contents |
Description
Returns a reference to the global Database object, only creating it if it doesn't already exist.
Description:JDatabase/getInstance
Syntax
& getInstance($options=array())
| Parameter Name | Default Value | Description |
|---|---|---|
| $options | array() | Parameters to be passed to the database driver |
Returns
A database object
Defined in
libraries/joomla/database/database.php
Importing
jimport( 'joomla.database.database' );
Source Body
function &getInstance( $options = array() ) { static $instances; if (!isset( $instances )) { $instances = array(); } $signature = serialize( $options ); if (empty($instances[$signature])) { $driver = array_key_exists('driver', $options) ? $options['driver'] : 'mysql'; $select = array_key_exists('select', $options) ? $options['select'] : true; $database = array_key_exists('database', $options) ? $options['database'] : null; $driver = preg_replace('/[^A-Z0-9_\.-]/i', '', $driver); $path = dirname(__FILE__).DS.'database'.DS.$driver.'.php'; if (file_exists($path)) { require_once($path); } else { JError::setErrorHandling(E_ERROR, 'die'); //force error type to die $error = JError::raiseError( 500, JTEXT::_('Unable to load Database Driver:') .$driver); return $error; } $adapter = 'JDatabase'.$driver; $instance = new $adapter($options); if ( $error = $instance->getErrorMsg() ) { JError::setErrorHandling(E_ERROR, 'ignore'); //force error type to die $error = JError::raiseError( 500, JTEXT::_('Unable to connect to the database:') .$error); return $error; } $instances[$signature] = & $instance; } return $instances[$signature]; }
[Edit See Also] SeeAlso:JDatabase/getInstance
Examples
<CodeExamplesForm />
