Ejemplo n.º 1
0
 /** Get PDO from the loaded database core module */
 public static function getPDO($uid = null)
 {
     // Set uid to logged user
     if ($uid === null) {
         $uid = get_user_id();
     }
     // Return cached pdo if same uid
     if (PDOBuilder::$pdo !== null && $uid === PDOBuilder::$pdoUid) {
         return PDOBuilder::$pdo;
     }
     $dsn = null;
     switch (get_db_type($uid)) {
         case 'mysql':
             $dsn = "mysql:dbname=" . get_db_name($uid) . ";host=" . get_db_host($uid) . ";port=" . get_db_port($uid);
             $options = array(\PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\'');
             $attributes = array(\PDO::ATTR_CASE => \PDO::CASE_UPPER);
             break;
         case 'postgresql':
             $dsn = "pgsql:dbname=" . get_db_name($uid) . ";host=" . get_db_host($uid) . ";port=" . get_db_port($uid);
             $options = array();
             $attributes = array(\PDO::ATTR_CASE => \PDO::CASE_UPPER);
             break;
         default:
             die("Config error");
     }
     try {
         PDOBuilder::$pdo = new \PDO($dsn, get_db_user($uid), get_db_password($uid), $options);
         foreach ($attributes as $key => $value) {
             PDOBuilder::$pdo->setAttribute($key, $value);
         }
         PDOBuilder::$pdoUid = $uid;
         return PDOBuilder::$pdo;
     } catch (\PDOException $e) {
         die("Connexion error " . $e);
     }
 }