ThinkPHP 3.2.3データベースの新特性設定
ThinkPHP 3.2.3バージョンのデータベースドライバはPDOで完全に書き換えられています。配置と使用も前のバージョンよりずっと柔軟で強いです。どうやって使うかを確認します。
まず、3.2.3のデータベース構成情報が調整され、完全なデータベース設定が含まれています。
DB_TYPEパラメータはデータベースタイプの設定で、現在サポートされているドライバはmysql/sqlite/oracle/pgsql/sqlsrv/firebird(他のデータベースタイプはドライバを追加する必要があります)を含んでいます。
‘DB_’TYPE'=>'mysql'は、もはやPDOに設定されていません。mysqlとmysqliは区別されません。
データベースの接続情報は主に以下のパラメータを含みます。
DB_DSNパラメータは一般的に設定する必要がなく、システムのデータベースドライバは標準設定を行います。調整が必要なら、PDOの関連データベース接続のDSN設定に従って設定してください。
DB_PAAMSはデータベースの接続パラメータを設定するために使用され、PDO実装の4番目のパラメータに入ります。
以下は典型的なデータベース全体の設定です。
または文字列で定義され、書式は以下の通りです。
データベースタイプ://ユーザ名:パスワード@データベースアドレス:データベースポート/データベース名唩文字セット
たとえば:
プロジェクト配置ファイルにDB_が配置されている場合CONFIG 2なら、採用も可能です。
$User=M('User'、'other'、'DB_CONFIG 2)
以上が本文の全部です。お好きになってください。
まず、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バージョンからデータベースのデバッグモードは独立して設定されています。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_PAAMSはデータベースの接続パラメータを設定するために使用され、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
モデルクラスに独自のデータベース接続情報connection属性を設定する場合、次の配列または文字列方式を使用することができる。
//
namespace Home\Model;
use Think\Model;
class UserModel extends 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',
);
}
注意:モデルで設定したデータベース接続設定パラメータは、グローバル構成の小文字名を使用します。または文字列で定義され、書式は以下の通りです。
データベースタイプ://ユーザ名:パスワード@データベースアドレス:データベースポート/データベース名唩文字セット
たとえば:
//
namespace Home\Model;
use Think\Model;
class UserModel extends Model{
//
protected $connection = 'mysql://root:[email protected]:3306/thinkphp#utf8';
}
プロファイル設定により、例えば、
// 1
'DB_CONFIG1' => 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',
),
// 2
'DB_CONFIG2' => 'mysql://root:[email protected]:3306/thinkphp#utf8';
そしてモデルの中で定義します。
//
namespace Home\Model;
use Think\Model;
class UserModel extends Model{
// 1
protected $connection = 'DB_CONFIG1';
//
protected $connection = 'DB_CONFIG2';
}
モデル定義時にデータベース接続情報を指定する以外にも、実装時にデータベース接続情報を指定することができます。M方法の実用化モデルを採用すれば、異なるデータベース接続情報を導入することもできます。
$User = M('User','other_','mysql://root:[email protected]/demo#utf8');
Userモデルを実例化し、Demoデータベースのotherを接続しています。userテーブルで使用している接続情報は3番目のパラメータ構成です。プロジェクト配置ファイルにDB_が配置されている場合CONFIG 2なら、採用も可能です。
$User=M('User'、'other'、'DB_CONFIG 2)
以上が本文の全部です。お好きになってください。