ホームページ >バックエンド開発 >PHPチュートリアル >ThinkPHP3.2.3 データベース設定の新機能_PHP チュートリアル

ThinkPHP3.2.3 データベース設定の新機能_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:04:50990ブラウズ

ThinkPHP3.2.3 データベース設定の新機能

前回の記事では、ThinkPHP3.2 の新しい変更点をまとめました。この記事では、データベースの新機能について詳しく説明します。必要な方は参考にしてください。

ThinkPHP3.2.3 バージョンのデータベースドライバーは PDO を使用して完全に書き直され、以前のバージョンよりも柔軟で強力な使用方法を学びましょう。

まず、3.2.3 のデータベース構成情報が調整されました。完全なデータベース設定は次のとおりです。

コードは次のとおりです:

/* データベース設定 */
'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 のデータベース設定の新しい変更点をまとめました。この記事では、データベースの新機能について詳しく説明します。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。