示例#1
0
 /**
  * Constructor creating a PDO object connecting to a choosen database.
  *
  * @param array $options containing details for connecting to the database.
  *
  */
 public function __construct($options)
 {
     $default = array('dsn' => null, 'username' => null, 'password' => null, 'driver_options' => null, 'fetch_style' => PDO::FETCH_OBJ);
     $this->options = array_merge($default, $options);
     try {
         $this->db = new PDO($this->options['dsn'], $this->options['username'], $this->options['password'], $this->options['driver_options']);
     } catch (Exception $e) {
         //throw $e; // For debug purpose, shows all connection details
         throw new PDOException('Could not connect to database, hiding connection details.');
         // Hide connection details.
     }
     $this->db->SetAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, $this->options['fetch_style']);
     // Get debug information from session if any.
     if (isset($_SESSION['CDatabase'])) {
         self::$numQueries = $_SESSION['CDatabase']['numQueries'];
         self::$queries = $_SESSION['CDatabase']['queries'];
         self::$params = $_SESSION['CDatabase']['params'];
         unset($_SESSION['CDatabase']);
     }
 }