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

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

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

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

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');

は、User モデルをインスタンス化し、デモ データベースの other_user テーブルに接続することを意味し、使用される接続情報は 3 番目のパラメーターで構成されます。

プロジェクト構成ファイルで DB_CONFIG2 を構成した場合は、以下も使用できます:
$User = M('User','other_','DB_CONFIG2');

これがこの記事の全内容です。皆さんに気に入っていただければ幸いです。

http://www.bkjia.com/PHPjc/963838.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/963838.html技術記事 ThinkPHP3.2.3 データベース設定の新機能、thinkPHP3.2.3 バージョンのデータベース ドライバーは PDO を使用して完全に書き直されました。構成と使用方法は以前のバージョンよりも柔軟で強力です...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。