thinkphp-データベース接続を構成する3つの方法
3287 ワード
thinkphp-データベース接続を構成する3つの方法
プロファイルdatabase.php:
1アプリケーションディレクトリのdatabaseに直接適用する.phpファイル内の構成(すべてのモジュールに適用)
2指定モジュールの下にあるdatabase.phpファイル内の構成(指定モジュールに適用)
デュアルコントローラのダイナミック構成
コントローラにDbクラスを導入する必要があります.
1 Db::connect([構成情報]);
2 Db::connect(構成情報);文字列の使用
文字列接続の定義形式は次のとおりです.
データベースタイプ://ユーザ名:パスワード@データベースアドレス:データベースポート/データベース名#文字セット
3 Db::connect(プロファイル);
アプリケーション・プロファイル(ここではデータベース・プロファイルではないことに注意)で追加のデータベース接続情報が構成されている場合
この構成を使用して接続:
三モデルに配置する
1 connectionプロパティの使用
2 DSN文字列で定義することもできます
3データベース接続の直接使用をサポートする構成名
プロファイルdatabase.php:
1アプリケーションディレクトリのdatabaseに直接適用する.phpファイル内の構成(すべてのモジュールに適用)
2指定モジュールの下にあるdatabase.phpファイル内の構成(指定モジュールに適用)
デュアルコントローラのダイナミック構成
コントローラにDbクラスを導入する必要があります.
use think\Db;
1 Db::connect([構成情報]);
Db::connect([
//
'type' => 'mysql',
// DSN
'dsn' => '',
//
'hostname' => '127.0.0.1',
//
'database' => 'thinkphp',
//
'username' => 'root',
//
'password' => '',
//
'hostport' => '',
//
'params' => [],
// utf8
'charset' => 'utf8',
//
'prefix' => 'think_',
]);
2 Db::connect(構成情報);文字列の使用
Db::connect('mysql://root:[email protected]:3306/thinkphp#utf8');
文字列接続の定義形式は次のとおりです.
データベースタイプ://ユーザ名:パスワード@データベースアドレス:データベースポート/データベース名#文字セット
3 Db::connect(プロファイル);
アプリケーション・プロファイル(ここではデータベース・プロファイルではないことに注意)で追加のデータベース接続情報が構成されている場合
// 1
'db_config1' => [
//
'type' => 'mysql',
//
'hostname' => '127.0.0.1',
//
'database' => 'thinkphp',
//
'username' => 'root',
//
'password' => '',
// utf8
'charset' => 'utf8',
//
'prefix' => 'think_',
],
// 2
'db_config2' => 'mysql://root:1234@localhost:3306/thinkphp#utf8';
この構成を使用して接続:
Db::connect('db_config1');
三モデルに配置する
1 connectionプロパティの使用
//
namespace app\index\model;
use think\Model;
class User extends Model
{
protected $connection = [
//
'type' => 'mysql',
// DSN
'dsn' => '',
//
'hostname' => '127.0.0.1',
//
'database' => 'thinkphp',
//
'username' => 'root',
//
'password' => '',
//
'hostport' => '',
//
'params' => [],
// utf8
'charset' => 'utf8',
//
'prefix' => 'think_',
];
}
2 DSN文字列で定義することもできます
//
namespace app\index\model;
use think\Model;
class User extends Model
{
//
protected $connection = 'mysql://root:[email protected]:3306/thinkphp#utf8';
}
3データベース接続の直接使用をサポートする構成名
//
namespace app\index\model;
use think\Model;
class User extends Model
{
//
protected $connection = 'db_config1';
}