/** * データベースに接続する。 * * 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']); }