thinkphp は新しいデータベースを個別に設定できます。設定方法は次のとおりです: 1. アプリケーション設定ファイルまたはモジュール設定ファイルに「'DB_HOST' => 'localhost'...」などの設定パラメータを追加します。 . 異なるアプリケーション状態の構成ファイルに独立したデータベース構成情報を定義します。 3. インスタンス化するときに、「$User = M('User','other_','mysql://root 」などの構文を使用してデータベース接続情報を指定します。 .."。
このチュートリアルの動作環境: Windows 7 システム、ThinkPHP バージョン 5、Dell G3 コンピューター。
thinkphp は単独で使用できます 新しいデータベースを構成しますか?
はい。
Thinkphp モデル - データベースに接続してモデル データベース接続を独立して構成します
データベース
ThinkPHPには抽象化が組み込まれています データベース アクセス層は、さまざまなデータベース操作をカプセル化します。データベースごとに異なるコードや基盤となる実装を記述せずに操作するには、パブリック Db クラスを使用するだけで済みます。Db クラスは自動的に呼び出します処理に対応するデータベース ドライバー。現在、データベースには Mysql、SqlServer、PgSQL、Sqlite、Oracle、Ibase、Mongo、および PDO のサポートが含まれます。
アプリケーションがデータベースを使用する必要がある場合、データベース接続情報が必要ですデータベース設定ファイルには複数の定義があります 方法.
1. グローバル設定定義
一般的に使用される設定方法は、アプリケーション設定ファイルまたはモジュール設定ファイルに次の設定パラメータを追加することです。 :
//数据库配置信息'DB_TYPE' => 'mysql', // 数据库类型 'DB_HOST' => 'localhost', // 服务器地址 'DB_NAME' => 'thinkphp', // 数据库名 'DB_USER' => 'root', // 用户名 'DB_PWD' => '123456', // 密码 'DB_PORT' => 3306, // 端口 'DB_PREFIX' => 'think_', // 数据库表前缀 'DB_CHARSET'=> 'utf8', // 字符集
データベースのタイプは、DB_TYPE パラメータ設定によって指定されます。
現在サポートされているデータベース設定は次のとおりです:
If DB_TYPE PDO タイプを使用し、データベース タイプは DB_DSN 構成によって決まります。
または、次の構成を使用します
'DB_DSN' => 'mysql://root:123456@localhost:3306/thinkphp#utf8'
DB_DSN モード定義を使用すると、構成パラメータを簡素化できます。DSN パラメータの形式は次のとおりです:
データベース タイプ://ユーザー名:パスワード@データベース アドレス:データベース ポート /データベース名#文字セット
文字セットの設定はバージョン 3.2.1 以降で有効である必要があります。 set が設定されていない場合、デフォルトは utf8 です。
両方の構成パラメータが同時に存在する場合、DB_DSN 構成パラメータが優先されます。
注: 分散データベースをセットアップする場合は、 DB_DSN 構成は、当面サポートされていません。
PDO ドライバーを使用する場合は、最初に **DB_TYPE* を pdo として構成する必要があります。次に、他のパラメーターを個別に構成する必要があります。例:
//PDO连接方式 'DB_TYPE' => 'pdo', // 数据库类型 'DB_USER' => 'root', // 用户名 'DB_PWD' => '', // 密码 'DB_PREFIX' => 'think_', // 数据库表前缀 'DB_DSN' => 'mysql:host=localhost;dbname=thinkphp;charset=UTF-8'
注: PDO モードの DB_DSN 設定形式はデータベースの種類によって異なりますので、詳細は PHP マニュアルを参照してください。
構成ファイルで定義されたデータベース接続情報は、通常、アプリケーションのデータベース アクセス構成が同じであるため、システムによってデフォルトで使用されます。この方法では、データベースに接続するときにシステムが自動的に取得するため、手動で接続する必要はありません。
モジュールごとに異なるデータベース接続情報を定義できます。デバッグ モードがオンになっている場合は、さまざまなアプリケーション状態の構成ファイルに独立したデータベース構成情報を定義することもできます。
2. モデル クラスの定義
接続属性がモデル クラスで定義されている場合、カスタム モデルをインスタンス化するときに、設定されたデフォルトの接続情報セットではなく、定義されたデータベース接続情報が使用されます。ファイル内の は通常、現在のデータベース接続の外部にある他のデータベースにある一部のデータ テーブルに使用されます。例:
//在模型里单独设置数据库连接信息 namespace Home\ Model; use Think\ Model; class UserModel extends Model{ protected $connection = array( 'db_type' => 'mysql', 'db_user' => 'root', 'db_pwd' => '1234', 'db_host' => 'localhost', 'db_port' => '3306', 'db_name' => 'thinkphp', 'db_charset' => 'utf8', ); }
DSN モードで定義することもできます。例:
//在模型里单独设置数据库连接信息 namespace Home\ Model; use Think\ Model; class UserModel extends Model{ //或者使用DSN定义 protected $connection = 'mysql://root:1234@localhost:3306/thinkphp#utf8'; }
構成ファイルで追加のデータベース接続情報を構成した場合、たとえば:
//数据库配置1 'DB_CONFIG1' => array( 'db_type' => 'mysql', 'db_user' => 'root', 'db_pwd' => '1234', 'db_host' => 'localhost', 'db_port' => '3306', 'db_name' => 'thinkphp', 'db_charset'=> 'utf8', ), //数据库配置2 'DB_CONFIG2' => 'mysql://root:1234@localhost:3306/thinkphp#utf8';
次に、モデル クラスの属性定義を次のように変更できます:
//在模型里单独设置数据库连接信息 namespace Home\ Model; use Think\ Model; class UserModel extends Model{ //调用配置文件中的数据库配置1 protected $connection = 'DB_CONFIG1'; } //在模型里单独设置数据库连接信息 namespace Home\ Model; use Think\ Model; class InfoModel extends Model{ //调用配置文件中的数据库配置1 protected $connection = 'DB_CONFIG2'; }
3 .インスタンス化の定義
モデルを定義するときにデータベース接続情報を指定することに加えて、モデルをインスタンス化するときにデータベース接続情報を指定することもできます。たとえば、M メソッドを使用してモデルをインスタンス化する場合、それも指定できます。さまざまなデータベース接続情報の受け渡しをサポートできます。例:
$User = M('User','other_','mysql://root:1234@localhost/demo#utf8');
は、User モデルをインスタンス化し、デモ データベースの other_user テーブルに接続することを意味し、使用される接続情報は 3 番目のパラメーターで構成されます。プロジェクト構成ファイルで DB_CONFIG2 を構成した場合は、次も使用できます。
$User = M('User','other_','DB_CONFIG2');
ThinkPHP のデータベース接続は遅延しているため、インスタンス化時にデータベースに接続しませんが、データベースは実際のデータ操作がある場合にのみ接続されます (また、システムが初めてモデルをインスタンス化するとき、システムは自動的にデータベースに接続し、関連するモデル クラスに対応するデータ テーブルのフィールド情報を取得します)。
推奨学習: 「thinkPHP ビデオ チュートリアル 」
以上がthinkphp は新しいデータベースを個別に構成できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。