Introduction - Connect -- Connecting and disconnecting a database
Description
   To connect to a database you have to use the function
   
    connect(), which requires 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:
   
$dsn = array(
    'phptype'  => false,
    'dbsyntax' => false,
    'username' => false,
    'password' => false,
    'protocol' => false,
    'hostspec' => false,
    'port'     => false,
    'socket'   => false,
    'database' => false,
); | 
   Any elements you set override the defaults and the remainder stay at
   their defaults.
  
   The second parameter is the optional $options
   array that can contain runtime configuration settings for this package.
   See 
    setOption() for more information on the
   available settings.
  
   In case of success you get a new instance of the database class.
   It is strongly recommened to
   check this return value with 
    isError().
  
   To disconnect use the method 
    disconnect()
   from your database class instance.
  
Example 33-1. Connect and disconnect <?php
require_once 'DB.php';
$dsn = 'pgsql://someuser:apasswd@localhost/thedb';
$options = array(
    'debug'       => 2,
    'portability' => DB_PORTABILITY_ALL,
);
$db =& DB::connect($dsn, $options);
if (PEAR::isError($db)) {
    die($db->getMessage());
}
// ...
$db->disconnect();
?> |  
  | 
Example 33-2. Connect using an array for the DSN information <?php
require_once 'DB.php';
$dsn = array(
    'phptype'  => 'pgsql',
    'username' => 'someuser',
    'password' => 'apasswd',
    'hostspec' => 'localhost',
    'database' => 'thedb',
);
$options = array(
    'debug'       => 2,
    'portability' => DB_PORTABILITY_ALL,
);
$db =& DB::connect($dsn, $options);
if (PEAR::isError($db)) {
    die($db->getMessage());
}
?> |  
 
    When connecting to SQLite using a DSN array, the value
    of the mode element must be a string:
     <?php
$dsn = array(
    'phptype'  => 'sqlite',
    'database' => 'thedb',
    'mode'     => '0644',
);
?> |   
    | 
Example 33-3. 
    Connect to MySQLi via SSL
    using an array for the DSN information
    
    The ssl element of the
    $options array must be set to
    TRUE in order for SSL to work. Each of the extra
    elements in the $dsn array
    (key through cipher
    in the example below) are optional.
    <?php
require_once 'DB.php';
$dsn = array(
    'phptype'  => 'mysqli',
    'username' => 'someuser',
    'password' => 'apasswd',
    'hostspec' => 'localhost',
    'database' => 'thedb',
    'key'      => 'client-key.pem',
    'cert'     => 'client-cert.pem',
    'ca'       => 'cacert.pem',
    'capath'   => '/path/to/ca/dir',
    'cipher'   => 'AES',
);
$options = array(
    'ssl' => true,
);
$db =& DB::connect($dsn, $options);
if (PEAR::isError($db)) {
    die($db->getMessage());
}
?> |  
  | 
Example 33-4. Connect to a PostgreSQL database via a socket <?php
require_once 'DB.php';
$dsn = 'pgsql://someuser:apasswd@unix(/tmp)/thedb';
$options = array(
    'debug'       => 2,
    'portability' => DB_PORTABILITY_ALL,
);
$db =& DB::connect($dsn, $options);
if (PEAR::isError($db)) {
    die($db->getMessage());
}
?> |  
  |