ThinkPHP3.2.3 バージョンのデータベースドライバーは PDO を使用して完全に書き直され、以前のバージョンよりも柔軟で強力な使用方法を学びましょう。
/* データベース設定 */
'DB_TYPE' => '', // データベースの種類
'DB_HOST' => '', // サーバーアドレス
'DB_NAME' => '', // データベース名
'DB_USER' => '', // ユーザー名
'DB_PWD' => '', // パスワード
'DB_PORT' => '', // ポート
'DB_PREFIX' => '', // データベーステーブルの接頭辞
'DB_PARAMS' => array(), // データベース接続パラメータ
'DB_DEBUG' => TRUE, // データベース デバッグ モードは、オンになった後に SQL ログを記録できます
'DB_LITE' => false, // データベース Lite モードを使用します
'DB_FIELDS_CACHE' => true, // フィールドのキャッシュを有効にする
'DB_CHARSET' => 'utf8', // デフォルトのデータベースエンコーディングは utf8 です
'DB_DEPLOY_TYPE' => 0, // データベース デプロイメント モード: 0 集中型 (単一サーバー)、1 分散型 (マスター/スレーブ サーバー)
'DB_RW_SEPARATE' => false, // データベースの読み書きが分離されていても、マスタースレーブモードは有効です
'DB_MASTER_NUM' => 1, // 読み取りと書き込みを分離した後のマスターサーバーの数
'DB_SLAVE_NO' => '', // スレーブサーバーのシリアル番号を指定します
バージョン3.2.2と比較して、以下の設定パラメータが廃止されました:
コードは次のとおりです:
'DB_FIELDTYPE_CHECK' // 3.2.3 フィールドタイプ検出を強制します
'DB_SQL_BUILD_CACHE' // 3.2.3 は SQL 作成キャッシュをキャンセルしました
'DB_SQL_BUILD_QUEUE' // 3.2.3 は SQL 作成キャッシュをキャンセルしました
'DB_SQL_BUILD_LENGTH' // 3.2.3 は SQL 作成キャッシュをキャンセルしました
'DB_SQL_LOG' // 新しい DB_DEBUG パラメータに置き換えられます
'DB_BIND_PARAM' // 新しいバージョンでは PDO 自動パラメーター バインディングが使用され、設定は不要です
新しいデータベース設定パラメータには以下が含まれます:
コードは次のとおりです:
'DB_DEBUG' //データベース デバッグ モードを有効にするために使用され、有効にすると SQL ログを記録できるようになります
'DB_LITE' // データベース Lite モードを使用して接続するかどうか。これをオンにすると、ネイティブ SQL クエリのみが使用可能になります
。
バージョン 3.2.2 のデータベースのデバッグ モードは、プロジェクトのデバッグ モード (APP_DEBUG 定数によって定義される) にバインドされます。バージョン 3.2.3 以降、データベースのデバッグ モードは独立して設定されます (DB_DEBUG によって設定されます)。パラメータ)。
DB_TYPE パラメーターはデータベース タイプの設定です。現在サポートされているドライバーには、mysql/sqlite/oracle/pgsql/sqlsrv/firebird が含まれます (他のデータベース タイプには追加のドライバーが必要です)。
'DB_TYPE'=>'mysql', // PDO への設定はサポートされなくなり、mysql と mysqli が区別されなくなりました
コードをコピー
データベースの接続情報には主に次のパラメータが含まれます:
コードは次のとおりです:
'DB_HOST' => '', // サーバーアドレスは IP アドレスを使用します
'DB_NAME' => '', // データベース名
'DB_USER' => '', // ユーザー名
'DB_PWD' => '', // パスワード
'DB_PORT' => '', // ポート 空白のままにすると、デフォルトのポートが使用されます
'DB_CHARSET' => '', // データベースエンコーディング
上記の設定パラメータは、PDOのインスタンス化時にPDO接続パラメータに自動変換されます。
DB_DSN パラメータは通常、設定する必要はありません。調整が必要な場合は、PDO の関連するデータベース接続の DSN 設定に従ってください。
DB_PARAMS はデータベースの接続パラメータを設定するために使用され、PDO インスタンス化の 4 番目のパラメータに渡されます。
以下は典型的なデータベースのグローバル設定です:
コードは次のとおりです:
'DB_TYPE' => 'mysql', // データベースの種類
'DB_HOST' => '192.168.1.10', // サーバーアドレス
'DB_NAME' => 'thinkphp', // データベース名
'DB_USER' => 'root', // ユーザー名
'DB_PWD' => '1234', // パスワード
'DB_PORT' => '3306', // ポート
'DB_PREFIX' => 'think_', // データベーステーブルの接頭辞
'DB_CHARSET' => 'utf8', // データベースエンコーディング
'DB_DEBUG' => TRUE, // データベース デバッグ モードは、オンになった後に SQL ログを記録できます
モデルクラスに別のデータベース接続情報接続属性を設定する場合、次の配列または文字列メソッドを使用できます:
コードは次のとおりです:
//データベース接続情報をモデルに別途設定します
名前空間 HomeModel;
ThinkModel を使用します;
クラス UserModel は Model を拡張します{
// 配列メソッドを使用して定義します
protected $connection = array(
'db_type' => 'mysql',
'db_user' => 'root',
'db_pwd' => '1234',
'db_host' => '192.168.1.10',
'db_port' => '3306',
'db_name' => 'thinkphp',
'db_charset' => 'utf8',
);
}
注: モデルに設定されたデータベース接続設定パラメーターは、グローバル構成の小文字の名前を使用します。
または文字列形式で定義されている場合、形式は次のとおりです:
データベースの種類://ユーザー名:パスワード@データベースアドレス:データベースポート/データベース名#文字セット
例:
コードは次のとおりです:
//データベース接続情報をモデルに別途設定します
名前空間 HomeModel;
ThinkModel を使用します;
クラス UserModel は Model を拡張します{
// 文字列メソッドを使用して定義します
protected $connection = 'mysql://root:1234@192.168.1.10:3306/thinkphp#utf8';
}
次のような構成ファイルを通じて設定することもできます:
コードは次のとおりです:
//データベース構成1
'DB_CONFIG1' => 配列(
'db_type' => 'mysql',
'db_user' => 'root',
'db_pwd' => '1234',
'db_host' => '192.168.1.10',
'db_port' => '3306',
'db_name' => 'thinkphp',
'db_charset'=> 'utf8',
;
)、
//データベース構成2
'DB_CONFIG2' => 'mysql://root:1234@192.168.1.10:3306/thinkphp#utf8';
それをモデル内で定義します:
コードは次のとおりです:
//データベース接続情報をモデルに別途設定します
名前空間 HomeModel;
ThinkModel を使用します;
クラス UserModel は Model を拡張します{
//設定ファイル内のデータベース設定 1 を呼び出します
protected $connection = 'DB_CONFIG1';
// または
protected $connection = 'DB_CONFIG2';
}
モデルを定義するときにデータベース接続情報を指定するだけでなく、モデルをインスタンス化するときに M メソッドを使用する場合は、次のような別のデータベース接続情報も渡すことができます。
コードは次のとおりです:
$User = M('User','other_','mysql://root:1234@192.168.1.10/demo#utf8');
は、User モデルをインスタンス化し、デモ データベースの other_user テーブルに接続することを意味し、使用される接続情報は 3 番目のパラメーターで構成されます。
プロジェクト構成ファイルで DB_CONFIG2 を構成した場合は、以下も使用できます:
$User = M('User','other_','DB_CONFIG2');
これがこの記事の全内容です。皆さんに気に入っていただければ幸いです。
http://www.bkjia.com/PHPjc/963996.htmlwww.bkjia.com本当http://www.bkjia.com/PHPjc/963996.html技術記事前回の記事では、ThinkPHP3.2.3 のデータベース設定の新しい変更点をまとめました。この記事では、データベースの新機能について詳しく説明します。