Will instantiate a new MDB2_Driver_Common
instance, but will not connect to the database until required. This
will delay making the actual connection. This is called lazy connecting.
Using this makes sense if it is possible that due to caching inside the
application no connection will ever need to be established.
Will instantiate a new MDB2_Driver_Common
instance, and will establish a database connection immediately. This
way any connection issues will immediately raise an error.
Returns a MDB2_Driver_Common instance. A new
MDB2_Driver_Common object is only created once
using factory(), subsequent calls to singleton will
return a reference to the existing object. This method is preferred over
declaring your database object as a global.
To connect to a database you have to use the function
factory(), connect() or singleton(), which require a valid
DSN
as the first parameter. This parameter can either be a string
or an array. If using an array, the array used gets merged with the
default information:
CASE_LOWER|CASE_UPPER: determines what case to force on field/table names
disable_query
boolean
determines if queries should be executed
result_class
string
class used for result sets
buffered_result_class
string
class used for buffered result sets, default is
MDB2_Result_Common
result_wrap_class
string
class used to wrap result sets into, default is
MDB2_Result_Common
result_buffering
boolean
should results be buffered or not?
fetch_class
string
class to use when fetch mode object is used
persistent
boolean
persistent connection?
debug
integer
numeric debug level
debug_handler
string
function/method that captures debug messages
debug_expanded_output
boolean
BC option to determine if more context information should be send to the debug handler
default_text_field_length
integer
default text field length to use
lob_buffer_length
integer
LOB buffer length
log_line_break
string
line-break format
idxname_format
string
pattern with '%s' for index name
seqname_format
string
pattern with '%s' for sequence name
savepoint_format
string
pattern with '%s' for auto generated savepoint names
seqcol_name
string
sequence column name
quote_identifier
boolean
if identifier quoting should be done when check_option is used
use_transactions
boolean
if transaction use should be enabled
decimal_places
integer
number of decimal places to handle
portability
integer
portability constant
modules
array
short to long module name mapping for __call()
emulate_prepared
boolean
force prepared statements to be emulated
datatype_map
array
map user defined datatypes to other primitive datatypes
datatype_map_callback
array
callback function/method that should be called
In case of success you get a new instance of the database class.
It is strongly recommended to check this return value with
PEAR::isError()
(will detect PEAR_Error or any subclass) or the
MDB2_Driver_Common specific
isError().
To disconnect use the method
disconnect()
from your database class instance.
<?php
require_once 'MDB2.php';
$dsn = 'pgsql://someuser:apasswd@localhost/thedb';
$mdb2 =& MDB2::singleton($dsn);
if (PEAR::isError($mdb2)) {
die($mdb2->getMessage());
}
$blah =& new blah();
// is able to use the existing database connection
$blah->foo();
$mdb2->disconnect();
class blah
{
function foo() {
// get a reference to the existing database object
$mdb2 =& MDB2::singleton();
// ...
}
}
?>