ホームページ > 記事 > PHPフレームワーク > 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 サイトの他の関連記事を参照してください。