Example #1
0
File: qb.php Project: naga3/qb
 /**
  * データベースに接続する。
  *
  * Qb::connect($dsn); // ユーザー名とパスワードは空文字、オプションはデフォルト<br>
  * Qb::connect($dsn, $user); // パスワードは空文字、オプションはデフォルト<br>
  * Qb::connect($dsn, $user, $pass); // オプションはデフォルト<br>
  * Qb::connect($dsn, $user, $pass, $options);<br>
  * Qb::connect($dsn, $options);<br>
  * Qb::connect($dsn, $user, $options);<br>
  *
  * @param string $dsn 接続文字列
  * @param string $user ユーザー名
  * @param string $pass パスワード
  * @param array $options オプション<br>
  *  primary_key: プライマリキーのカラム名 default: 'id'<br>
  *  error_mode: エラーモード default: PDO::ERRMODE_EXCEPTION<br>
  *  json_options: JSONエンコード時のオプション default: JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_AMP | JSON_HEX_QUOT<br>
  */
 public static function connect($dsn, $user = '', $pass = '', $options = [])
 {
     if (is_array($user)) {
         $options = $user;
         $user = '';
         $pass = '';
     } else {
         if (is_array($pass)) {
             $options = $pass;
             $pass = '';
         }
     }
     self::$options = array_merge(['primary_key' => 'id', 'error_mode' => PDO::ERRMODE_EXCEPTION, 'json_options' => JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_AMP | JSON_HEX_QUOT], $options);
     self::$db = new PDO($dsn, $user, $pass);
     self::$db->setAttribute(PDO::ATTR_ERRMODE, self::$options['error_mode']);
 }