「PHPの基礎 - INIファイル」の版間の差分
ナビゲーションに移動
検索に移動
(ページの作成:「== 概要 == <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 { | ||
// | // parse_ini_file関数を使用してINIファイルを読み込む (セクション無し) | ||
$config = parse_ini_file('hoge.ini'); | $config = parse_ini_file('hoge.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());
}
?>