Exemplo n.º 1
0
 public static function _init()
 {
     if (get_called_class() !== 'Model') {
         if (static::$_pdo == null) {
             $db = Config::get('db');
             static::$_pdo = new PDO($db['dsn'], $db['username'], $db['password']);
         }
     }
 }
Exemplo n.º 2
0
 protected static function _setupPdo()
 {
     // Check the DSN string
     if (!isset(static::$_dsn)) {
         $error = "No DSN specified in " . get_called_class();
         $error .= ": please specify a 'protected static \$_dsn = ...;'";
         throw new Exception($error);
     }
     $user = null;
     $password = null;
     $options = array();
     // If it is MySQL, extract user and password from the DSN
     $dsn = explode(":", static::$_dsn);
     if ('mysql' == $dsn[0]) {
         $parts = explode(";", $dsn[1]);
         foreach ($parts as $i => $part) {
             $kv = explode('=', $part);
             $parts[$kv[0]] = $kv[1];
             unset($parts[$i]);
         }
         $user = @ZFE_Core::value($parts['user']);
         $password = @ZFE_Core::value($parts['password']);
         unset($parts['user']);
         unset($parts['password']);
         $_parts = array();
         foreach ($parts as $k => $v) {
             $_parts[] = "{$k}={$v}";
         }
         $dsn[1] = implode(";", $_parts);
         // Update default fetch mode (maybe put this in the global
         // function scope)
         $options[PDO::ATTR_DEFAULT_FETCH_MODE] = PDO::FETCH_ASSOC;
     }
     $dsn = implode(":", $dsn);
     static::$_pdo = new PDO($dsn, $user, $password, $options);
 }