PHPの基礎 - INIファイル
ナビゲーションに移動
検索に移動
概要
INIファイルの読み込み
使用例
# セクション無し
host = "localhost"
dbname = "your_database_name"
username = "your_username"
password = "your_password"
charset = "utf8mb4"
# セクションあり
[development]
host = "localhost"
dbname = "dev_database"
username = "dev_user"
password = "dev_password"
charset = "utf8mb4"
[production]
host = "production.example.com"
dbname = "prod_database"
username = "prod_user"
password = "prod_password"
charset = "utf8mb4"
[testing]
host = "test.example.com"
dbname = "test_database"
username = "test_user"
password = "test_password"
charset = "utf8mb4"
<?php
try {
// parse_ini_file関数を使用してINIファイルを読み込む (セクション無し)
$config = parse_ini_file('hoge.ini');
// parse_ini_file関数を使用してINIファイルを読み込む (セクションあり)
$config = parse_ini_file($iniPath, true);
if ($config === false) {
throw new Exception('設定ファイルの読み込みに失敗');
}
// セクションありの場合
// 指定されたセクションが存在するか確認
if (!isset($config[$section])) {
throw new Exception("指定されたセクション '{$section}' が見つかりません。");
}
$sectionConfig = $config[$section];
// 接続に必要な情報を設定ファイルから取得
$host = $config['host'] ?? 'localhost'; // デフォルト値を設定
$dbname = $config['dbname'] ?? '';
$username = $config['username'] ?? 'root';
$password = $config['password'] ?? '';
$charset = $config['charset'] ?? 'utf8mb4';
// セクションありの場合
// 接続に必要な情報を設定ファイルから取得
$host = $sectionConfig['host'] ?? 'localhost';
$dbname = $sectionConfig['dbname'] ?? '';
$username = $sectionConfig['username'] ?? 'root';
$password = $sectionConfig['password'] ?? '';
$charset = $sectionConfig['charset'] ?? 'utf8mb4';
// DSN (Data Source Name) を構築
$dsn = "mysql:host={$host};dbname={$dbname};charset={$charset}";
// 接続オプションを設定
// エラーモード : 例外をスロー
// フェッチモード : 連想配列として結果を取得
// プリペアドステートメントのエミュレーションを無効化
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
// PDOインスタンスを生成 (データベースに接続)
$pdo = new PDO($dsn, $username, $password, $options);
echo "データベースへの接続に成功";
}
catch (Exception $e) {
// エラーハンドリング
die('接続エラー: ' . $e->getMessage());
}
?>