「PHPの基礎 - INIファイル」の版間の差分

提供:MochiuWiki - SUSE, Electronic Circuit, PCB
ナビゲーションに移動 検索に移動
(ページの作成:「== 概要 == <br><br> == INIファイルの読み込み == ==== 使用例 ==== <syntaxhighlight lang="ini"> [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 = "t…」)
 
 
6行目: 6行目:
==== 使用例 ====
==== 使用例 ====
  <syntaxhighlight lang="ini">
  <syntaxhighlight lang="ini">
# セクション無し
host    = "localhost"
dbname  = "your_database_name"
username = "your_username"
password = "your_password"
charset  = "utf8mb4"
</syntaxhighlight>
<br>
<syntaxhighlight lang="ini">
# セクションあり
  [development]
  [development]
  host = "localhost"
  host     = "localhost"
  dbname = "dev_database"
  dbname   = "dev_database"
  username = "dev_user"
  username = "dev_user"
  password = "dev_password"
  password = "dev_password"
  charset = "utf8mb4"
  charset = "utf8mb4"
   
   
  [production]
  [production]
  host = "production.example.com"
  host     = "production.example.com"
  dbname = "prod_database"
  dbname   = "prod_database"
  username = "prod_user"
  username = "prod_user"
  password = "prod_password"
  password = "prod_password"
  charset = "utf8mb4"
  charset = "utf8mb4"
   
   
  [testing]
  [testing]
  host = "test.example.com"
  host     = "test.example.com"
  dbname = "test_database"
  dbname   = "test_database"
  username = "test_user"
  username = "test_user"
  password = "test_password"
  password = "test_password"
  charset = "utf8mb4"
  charset = "utf8mb4"
  </syntaxhighlight>
  </syntaxhighlight>
<br>
<br>
31行目: 41行目:
  <?php
  <?php
  try {
  try {
     // INIファイルを読み込む
     // parse_ini_file関数を使用してINIファイルを読み込む (セクション無し)
    // セクション無し
     $config = parse_ini_file('hoge.ini');
     $config = parse_ini_file('hoge.ini');
   
   
     // INIファイルを読み込む (セクションあり)
     // parse_ini_file関数を使用してINIファイルを読み込む (セクションあり)
     $config = parse_ini_file($iniPath, true);
     $config = parse_ini_file($iniPath, true);
   
   
68行目: 77行目:
   
   
     // 接続オプションを設定
     // 接続オプションを設定
    // エラーモード : 例外をスロー
    // フェッチモード : 連想配列として結果を取得
    // プリペアドステートメントのエミュレーションを無効化
     $options = [
     $options = [
       PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
       PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,

2024年11月20日 (水) 17:10時点における最新版

概要



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());
 }
 ?>