ホームページ >バックエンド開発 >PHPチュートリアル >ThinkPHP3.2.3 データベース設定の新機能、thinkphp3.2.3_PHP チュートリアル
ThinkPHP3.2.3 バージョンのデータベースドライバーは、以前のバージョンよりも柔軟で強力です。
まず、3.2.3 のデータベース構成情報が調整されました。完全なデータベース設定は次のとおりです。
コードをコピーします コードは次のとおりです:
/* データベース設定 */
「DB_TYPE」 =>
'Db_host' = & gt; '', // サーバーアドレス
;
'DB_NAME' =>
「DB_USER」 =>
「DB_PWD」 =>
'Db_port' = & gt; '', // ポート
;
'DB_PREFIX' => '', // データベーステーブルの接頭辞
'DB_PARAMS' => array(), // データベース接続パラメータ
'DB_DEBUG' => TRUE, // データベース デバッグ モードは、オンになった後に SQL ログを記録できます
'DB_LITE' => false, // データベース Lite モードを使用します
'DB_FIELDS_CACHE' => true, // フィールドのキャッシュを有効にする
'Db_charset' = & gt', // データベースコーディングのデフォルトは 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' = & gt; '', // パスワード
;
'Db_port' = & gt; '', // ポートは空のままにし、デフォルトのポートを使用します
;
'Db_charset' = & gt; '', // データベースコーディング
;
上記の設定パラメータは、PDOのインスタンス化時にPDO接続パラメータに自動変換されます。
DB_DSN パラメータは通常、設定する必要はありません。調整が必要な場合は、PDO の関連するデータベース接続の DSN 設定に従ってください。
DB_PARAMS はデータベースの接続パラメータを設定するために使用され、PDO インスタンス化の 4 番目のパラメータに渡されます。
以下は典型的なデータベースのグローバル設定です:
コードをコピーします コードは次のとおりです:
'db_type' => 'mysql'、=> 'mysql'、
'DB_HOST' =>
'DB_NAME' => 'thinkphp', // データベース名
'Db_user' = & gt', // ユーザー名
;
「DB_PWD」 =>
'Db_port' = & gt; '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 を呼び出します
保護された $connection = 'DB_CONFIG1';
// または
保護された $connection = 'DB_CONFIG2';
}
モデルを定義するときにデータベース接続情報を指定するだけでなく、モデルをインスタンス化するときに M メソッドを使用する場合は、次のような別のデータベース接続情報も渡すことができます。
コードをコピーします コードは次のとおりです:
$User = M('User','other_','mysql://root:1234@192.168.1.10/demo#utf8');
プロジェクト構成ファイルで DB_CONFIG2 を構成した場合は、以下も使用できます:
$User = M('User','other_','DB_CONFIG2');