ホームページ > PHPフレームワーク > YII > php yiiフレームワークを使用してデータベースに接続する方法

php yiiフレームワークを使用してデータベースに接続する方法

angryTom
リリース: 2019-11-04 14:15:58
オリジナル
2892 人が閲覧しました

この記事では、主に PHP の Yii フレームワークでのデータベース構成と SQL 操作のサンプル チュートリアルを紹介します。Yii はさまざまなデータベースのバインドをサポートしています。この記事では主に、Yii でのさまざまなクエリ ステートメントの使用例が示されています。友達が必要な方は、## を参照してください。

php yiiフレームワークを使用してデータベースに接続する方法

#php yii フレームワークデータベースへの接続方法

データベース アクセス (DAO)

Yii には、PHP PDO 上に構築されたデータ アクセス層 (DAO) が含まれています。DAO は、さまざまなデータベースに統合された API を提供します。ActiveRecord は、MVC でデータベースとモデル (M、Model) を提供します。動的クエリの作成には QueryBuilder が使用されます。ステートメント。DAO は、データベースと対話するためにさまざまな場所で使用できる、シンプルで効率的な SQL クエリを提供します。

Yii は、デフォルトで次のデータベース (DBMS) をサポートします。

MySQLMariaDBSQLitePostgreSQLCUBRID: バージョン> = 9.3. (PHP PDO 拡張機能のバグにより、参照値が無効になるため、CUBRID のクライアント側とサーバー側の両方で 9.3 を使用する必要があります)OracleMSSQL: バージョン> =2005.

1. 構成

データベースの使用を開始するには、まずデータベース接続コンポーネントを構成する必要があります。これは、アプリケーション構成 (「基本」Web アプリケーション) に db コンポーネントを追加することで実現されます。は config/web.php)、DSN (データ ソース名) はデータ ソース名であり、データベース情報を指定するために使用されます。以下に示すように:

return [
  // ...
  'components' => [
    // ...
    'db' => [
      'class' => 'yii\db\Connection',
      'dsn' => 'mysql:host=localhost;dbname=mydatabase', // MySQL, MariaDB
      //'dsn' => 'sqlite:/path/to/database/file', // SQLite
      //'dsn' => 'pgsql:host=localhost;port=5432;dbname=mydatabase', // PostgreSQL
      //'dsn' => 'cubrid:dbname=demodb;host=localhost;port=33000', // CUBRID
      //'dsn' => 'sqlsrv:Server=localhost;Database=mydatabase', // MS SQL Server, sqlsrv driver
      //'dsn' => 'dblib:host=localhost;dbname=mydatabase', // MS SQL Server, dblib driver
      //'dsn' => 'mssql:host=localhost;dbname=mydatabase', // MS SQL Server, mssql driver
      //'dsn' => 'oci:dbname=//localhost:1521/mydatabase', // Oracle
      'username' => 'root', //数据库用户名
      'password' => '', //数据库密码
      'charset' => 'utf8',
    ],
  ],
  // ...
];
ログイン後にコピー

2。接続コンポーネントを構成した後、次のことができます。次の構文を使用してアクセスします。

$connection = \Yii::$app->db;
ログイン後にコピー
ODBC 経由でデータベースに接続する場合は、yii\db\Connection::driverName プロパティを設定する必要があります。例:

'db' => [
  'class' => 'yii\db\Connection',
  'driverName' => 'mysql',
  'dsn' => 'odbc:Driver={MySQL};Server=localhost;Database=test',
  'username' => 'root',
  'password' => '',
],
ログイン後にコピー

データベース接続をグローバル アプリケーション コンポーネントとして定義したくない場合は、コード内で直接初期化できます:

$connection = new \yii\db\Connection([
  'dsn' => $dsn,
   'username' => $username,
   'password' => $password,
]);
$connection->open();
ログイン後にコピー

3. データベース接続を作成した後に追加の SQL クエリを実行する必要がある場合は、接続するには、次のコードをアプリケーション構成ファイルに追加できます:

return [
  // ...
  'components' => [
    // ...
    'db' => [
      'class' => 'yii\db\Connection',
      // ...
      'on afterOpen' => function($event) {
        $event->sender->createCommand("SET time_zone = 'UTC'")->execute();
      }
    ],
  ],
  // ...
];
ログイン後にコピー
SQL を実行してもデータが返されない場合は、コマンドでexecute メソッドを使用できます:

$command = $connection->createCommand('UPDATE post SET status=1 WHERE id=1');
$command->execute();
ログイン後にコピー

挿入、更新、および削除メソッドを使用できます。これらのメソッドはパラメータに基づいて適切な SQL を生成し、実行します。

// INSERT
$connection->createCommand()->insert('user', [
  'name' => 'Sam',
  'age' => 30,
])->execute();
// INSERT 一次插入多行
$connection->createCommand()->batchInsert('user', ['name', 'age'], [
  ['Tom', 30],
  ['Jane', 20],
  ['Linda', 25],
])->execute();
// UPDATE
$connection->createCommand()->update('user', ['status' => 1], 'age > 30')->execute();
// DELETE
$connection->createCommand()->delete('user', 'status = 0')->execute();
ログイン後にコピー

推奨: "

YII チュートリアル

"

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート