ホームページ  >  記事  >  PHPフレームワーク  >  thinkphp をデータベースに接続する方法

thinkphp をデータベースに接続する方法

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼オリジナル
2019-08-26 14:20:454129ブラウズ

thinkphp をデータベースに接続する方法

この記事の例では、ThinkPHP がデータベースに接続するためのいくつかの一般的な方法をまとめています。皆さんの参考に共有してください。詳細は次のとおりです:

ThinkPHP には、さまざまなデータベース操作をカプセル化する抽象データベース アクセス層が組み込まれています。データベースごとに異なるコードや基礎となる実装を作成せずに操作するには、パブリック Db クラスを使用するだけで済みます。 . Db クラスは、処理のために対応するデータベース アダプターを自動的に呼び出します。現在のデータベースには、Mysql、MsSQL、PgSQL、Sqlite、Oracle、Ibase、および PDO のサポートが含まれます。アプリケーションがデータベースを使用する必要がある場合は、データベース接続情報を構成する必要があります。方法データベース設定ファイルがたくさんありますか? 2 つの定義方法:

最初の方法は、プロジェクト設定ファイルで

を定義することです。コードは次のとおりです:

return array(  
 'DB_TYPE'=> 'mysql',   
 'DB_HOST'=> 'localhost',  
 'DB_NAME'=>'thinkphp',   
 'DB_USER'=>'root',   
 'DB_PWD'=>'',   
 'DB_PORT'=>'3306',  
 'DB_PREFIX'=>'think_',  
 // 其他项目配置参数………  
 );

通常、プロジェクトのデータベース アクセス設定は同じであり、手動で接続しなくてもデータベース接続時にシステムが自動的に取得するため、この方法を推奨します。

プロジェクトごとに異なるデータベース接続情報を定義できます。また、デバッグ用データベース構成情報をデバッグ用構成ファイル (Conf/debug.php) に定義することもできます。モード設定ファイル データベース接続情報も定義されている場合、後者はデバッグ モードで有効になり、前者はデプロイメント モードで有効になります。

関連する推奨事項: 「ThinkPHP チュートリアル

2 番目に、DSN メソッドを使用して、Db クラスの初期化時にパラメーターを渡します

#コードは次のとおりです:

$db_dsn = "mysql://username:passwd@localhost:3306/DbName";  
 $db = new Db($db_dsn);

このメソッドは主に、コントローラー内のデータベースに手動で接続する場合、または複数のデータベース接続を作成する場合に使用されます。

3 番目の方法は、配列を使用してパラメータを渡すことです。

コードは次のとおりです:

$DSN = array(   
 'dbms'     => 'mysql',    
 'username' => 'username',    
 'password' => 'password',    
 'hostname' => 'localhost',    
 'hostport' => '3306',    
 'database' => 'dbname'   
 );  
 $db = new Db($DSN);

このメソッドは手動でも使用されます。データベースへの接続、または複数のデータベース接続の作成。

4 番目の方法は、モデル クラスで定義することです。

コードは次のとおりです:

protected $connection = array(   
 'dbms'     => 'mysql',    
 'username' => 'username',    
 'password' => 'password',    
 'hostname' => 'localhost',    
 'hostport' => '3306',    
 'database' => 'dbname'   
 );  
 // 或者使用下面的定义  
protected $connection = "mysql://username:passwd@localhost:3306/DbName";

If 接続属性が定義されている場合モデル クラスの場合、モデル オブジェクトをインスタンス化するときに、データベース接続情報を使用してデータベースに接続します。これは通常、現在のデータベース接続の外側にある他のデータベースにある一部のデータ テーブルに使用されます。

ThinkPHP は、最初はデータベースに接続せず、データ クエリ操作があった場合にのみ接続します。また、システムがモデルを初めて操作するとき、フレームワークは自動的にデータベースに接続して、該当するモデルクラスのデータフィールド情報を取得し、キャッシュします。

(フィールド キャッシュ ディレクトリ: Runtime/Data/_fields)

ThinkPHP は PDO モードをサポートしています。PDO モードを使用してデータベースに接続する場合は、次の設定を参照してください。

プロジェクト構成ファイル定義を例として説明します:

コードは次のとおりです:

return array(  
 'DB_TYPE'=> 'pdo',   
 // 注意DSN的配置针对不同的数据库有所区别 请参考PHP手册PDO类库部分  
 'DB_DSN'=> 'mysql:host=localhost;dbname=think',  
 'DB_USER'=>'root',   
 'DB_PWD'=>'',   
 'DB_PREFIX'=>'think_',  
 // 其他项目配置参数………  
 );

PDO メソッドを使用する場合は、関連する PDO モジュール DB_DSN が有効になっています。 パラメータは PDO 接続に対してのみ有効です。

以上がthinkphp をデータベースに接続する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。