次のチュートリアル コラムでは、ThinkPHP データベースの操作とデータベースへの接続について紹介します。困っている友人の役に立てば幸いです。 ThinkPHP には、さまざまなデータベース操作をカプセル化する抽象データベース アクセス層が組み込まれています。データベースごとに異なるコードや基礎となる実装を記述することなく、パブリック Db クラスを使用するだけで操作できます。クラスは、処理のために対応するデータベースドライバーを自動的に呼び出します。 PDO メソッドを使用することで、現在、Mysql、SqlServer、PgSQL、Sqlite およびその他のデータベースのサポートが含まれています。
アプリケーションでデータベースを使用する必要がある場合は、データベース接続情報を構成する必要があります。データベース構成ファイルを定義するには、さまざまな方法があります。
1. 設定ファイルの定義2. メソッドの設定- 3. モデルクラスの定義
- 設定パラメータのリファレンス
- 1. 設定ファイルの定義
一般的な設定方法は、アプリケーション ディレクトリまたはモジュール ディレクトリの database.php に次の設定パラメータを追加することです:return [
// 数据库类型 'type' => 'mysql',
// 数据库连接DSN配置 'dsn' => '',
// 服务器地址 'hostname' => '127.0.0.1',
// 数据库名 'database' => 'thinkphp',
// 数据库用户名 'username' => 'root',
// 数据库密码 'password' => '',
// 数据库连接端口 'hostport' => '',
// 数据库连接参数 'params' => [],
// 数据库编码默认采用utf8 'charset' => 'utf8',
// 数据库表前缀 'prefix' => 'think_',
// 数据库调试模式 'debug' => false,
// 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器) 'deploy' => 0,
// 数据库读写是否分离 主从式有效 'rw_separate' => false,
// 读写分离后 主服务器数量 'master_num' => 1,
// 指定从服务器序号 'slave_no' => '',
// 是否严格检查字段是否存在 'fields_strict' => true,];
type パラメータは、名前空間の完全な定義をサポートします。名前空間の定義がない場合、デフォルトで \think\db\connector が名前空間として使用されます。独自の拡張子を適用するデータベース ドライバを使用する場合は、次のように構成できます。
// 数据库类型 'type' => '\org\db\Mysql',
データベース コネクタが、デフォルトの \think\db\connector\Mysql の代わりに \org\db\Mysql クラスをデータベース接続ドライバーとして使用することを示します。
各モジュールは独立したデータベース接続パラメータを設定でき、同じ設定パラメータを繰り返し設定する必要はありません。たとえば、管理モジュールの database.php 設定ファイルで定義できます。return [ // 服务器地址 'hostname' => '192.168.1.100', // 数据库名 'database' => 'admin',];
は、管理モジュールのデータベース アドレスが 192.168.1.100 に変更され、データベース名が admin に変更され、その他の接続パラメータがアプリケーションの database.php の設定と同じであることを意味します。 V5.0.6 以降、Mysql の切断および再接続メカニズムがサポートされています。デフォルトではオフになっています。必要に応じて、
// 开启断线重连 'break_reconnect' => true,
をデータベース設定ファイル 接続パラメータ
さまざまな接続ニーズに合わせてデータベース接続パラメータを追加できます (特定の接続パラメータについては、PHP マニュアルを参照してください)。組み込みパラメータには次のものが含まれます。 : PDO::ATTR_CASE => PDO::CASE_NATURAL,PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,PDO::ATTR_ORACLE_NULLS => PDO::NULL_NATURAL,PDO::ATTR_STRINGIFY_FETCHES => false,PDO::ATTR_EMULATE_PREPARES => false,
データベースに設定された params パラメータの接続構成は、組み込みの設定パラメータとマージされます。長い接続を使用し、データベースの小文字の列名を返す必要がある場合は、次のようにすることができます。次の方法で定義します。
'params' => [ \PDO::ATTR_PERSISTENT => true, \PDO::ATTR_CASE => \PDO::CASE_LOWER,],PDO でサポートされている接続パラメータは params で設定できます。
2. メソッドの構成
Db クラスを呼び出すときに、接続情報を動的に定義できます。例: Db::connect([ // 数据库类型
'type' => 'mysql', // 数据库连接DSN配置
'dsn' => '', // 服务器地址
'hostname' => '127.0.0.1', // 数据库名
'database' => 'thinkphp', // 数据库用户名
'username' => 'root', // 数据库密码
'password' => '', // 数据库连接端口
'hostport' => '', // 数据库连接参数
'params' => [], // 数据库编码默认采用utf8
'charset' => 'utf8', // 数据库表前缀
'prefix' => 'think_',]);
または文字列モードを使用します:
Db::connect('mysql://root:1234@127.0.0.1:3306/thinkphp#utf8');
文字列接続の定義形式は次のとおりです:
データベース タイプ://ユーザー名:パスワード@データベース アドレス: データベース ポート/データベース名#文字セット
注: 文字列モードでは、プレフィックスや接続パラメータなどの一部のパラメータを定義できない場合があります。
アプリケーション構成ファイル
//数据库配置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');
Db::connect('db_config2');
3 に変更できます。モデル クラス定義
If in a特定のモデル クラスに接続属性が定義されている場合、モデルは動作時に、構成ファイルに設定されているデフォルトの接続情報ではなく、指定されたデータベース接続に自動的に接続します。通常、外部の他のデータベースにある一部のデータ テーブルに使用されます。現在のデータベース接続。例: //在模型里单独设置数据库连接信息
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_',
];
}
は、DSN 文字列モードでも定義できます。例:
//在模型里单独设置数据库连接信息 namespace app\index\model; use think\Model;class User extends Model { //或者使用字符串定义 protected $connection = 'mysql://root:1234@127.0.0.1:3306/thinkphp#utf8'; }ThinkPHP のデータベース接続は遅延であることに注意してください。データベースはインスタンス化時に接続されますが、実際のデータ操作があるときにデータベースに接続されます。
#構成パラメータのリファレンス
サポートされているデフォルトのデータベース接続情報は次のとおりです: ##pgsql データベース ドライバーを使用している場合は、まず thinkphp/library/think/db/connector/pgsql.sql ファイルを実行用のデータベース。
#type#パラメータ名
説明
デフォルト値
データベース タイプ
なし
##ホスト名 データベース アドレス
127.0.0.1
database データベース名 データベース ユーザー名なし
##ユーザー名
データベース パスワードなし
パスワード
なし
#ホストポート データベース ポート番号 なし なし
##dsn
データベース接続 DSN 情報
empty
params
データベース接続パラメータ
utf8
charset
データベース エンコーディング
なし
prefix
データベースのテーブルプレフィックス
false
debug
デバッグ モードかどうか
0
デプロイ
データベース デプロイメント モード: 0 集中型 (単一サーバー)、1 個の分散型 (マスター/スレーブ サーバー)
false
rw_ Separate
マスタースレーブモードでデータベースの読み書きを分離するかどうか有効です
##master_num 読み取りと書き込みを分離した後のマスター サーバーの数 1
slave_no スレーブサーバーのシリアル番号を指定しますNone
##fields_strict
フィールドの存在を厳密にチェックするかどうか
true
resultset_type
データセットの戻り値の型
array
##auto_timestamp
タイムスタンプ フィールドを自動的に書き込む false
sql_explain
SQL パフォーマンス分析を実行し、デバッグを有効にする必要があるかどうか false
query
クエリ オブジェクトを指定します think\db\Query
builder
データベース ビルダー オブジェクトを指定します なし
注:
以上がデータベースに接続するための ThinkPHP データベース操作の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ホットトピック









