Heim > PHP-Framework > YII > Hauptteil

So stellen Sie mithilfe des PHP-YII-Frameworks eine Verbindung zur Datenbank her

angryTom
Freigeben: 2019-11-04 14:15:58
Original
2860 Leute haben es durchsucht

In diesem Artikel werden hauptsächlich Tutorials zur Datenbankkonfiguration und SQL-Operationen im Yii-Framework von PHP vorgestellt. Der Artikel enthält hauptsächlich Beispiele für die Verwendung verschiedener Abfrageanweisungen in Yii

So stellen Sie mithilfe des PHP-YII-Frameworks eine Verbindung zur Datenbank her

So verbinden Sie das PHP-YII-Framework mit der Datenbank

Datenbankzugriff ( DAO )

Yii enthält eine auf PHP basierende Datenzugriffsschicht (DAO). DAO bietet eine einheitliche API für verschiedene Datenbanken (M, Model) in MVC, an die QueryBuilder gewöhnt ist Erstellen Sie dynamische Abfrageanweisungen. DAO bietet einfache und effiziente SQL-Abfragen, die an verschiedenen Stellen zur Interaktion mit der Datenbank verwendet werden können.

Yii unterstützt standardmäßig die folgenden Datenbanken (DBMS):

MySQLMariaDBSQLitePostgreSQLCUBRID : Version>= 9.3. (Aufgrund eines Fehlers in der PHP-PDO-Erweiterung ist der Referenzwert ungültig, daher müssen Sie 9.3 sowohl auf der Client- als auch auf der Serverseite von CUBRID verwenden.)OracleMSSQL: Version> =2005.

1. Konfiguration

Um mit der Verwendung der Datenbank zu beginnen, müssen Sie zunächst die Datenbankverbindungskomponente konfigurieren, was durch Hinzufügen der Datenbankkomponente zur Anwendungskonfiguration (der „Basiskomponente“) erreicht wird „Webanwendung ist config/web.php), DSN (Datenquellenname) ist der Datenquellenname, der zur Angabe von Datenbankinformationen verwendet wird. Wie unten gezeigt:

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',
    ],
  ],
  // ...
];
Nach dem Login kopieren

2. Nach der Konfiguration der Verbindungskomponente können Sie für den Zugriff die folgende Syntax verwenden:

$connection = \Yii::$app->db;
Nach dem Login kopieren

Wenn Sie über ODBC eine Verbindung zur Datenbank herstellen möchten, müssen Sie das Attribut yiidbConnection::driverName konfigurieren, zum Beispiel:

'db' => [
  'class' => 'yii\db\Connection',
  'driverName' => 'mysql',
  'dsn' => 'odbc:Driver={MySQL};Server=localhost;Database=test',
  'username' => 'root',
  'password' => '',
],
Nach dem Login kopieren

Wenn Sie die Datenbankverbindung nicht als globale Anwendungskomponente definieren möchten, können Sie sie im Code konfigurieren. Zur direkten Initialisierung verwenden:

$connection = new \yii\db\Connection([
  'dsn' => $dsn,
   'username' => $username,
   'password' => $password,
]);
$connection->open();
Nach dem Login kopieren

3. Wenn Sie zusätzliches SQL ausführen müssen Abfragen nach dem Herstellen der Verbindung können Sie den folgenden Code zur Anwendungskonfigurationsdatei hinzufügen:

return [
  // ...
  'components' => [
    // ...
    'db' => [
      'class' => 'yii\db\Connection',
      // ...
      'on afterOpen' => function($event) {
        $event->sender->createCommand("SET time_zone = 'UTC'")->execute();
      }
    ],
  ],
  // ...
];
Nach dem Login kopieren

Bei Ausführung Wenn SQL keine Daten zurückgibt, können Sie die Ausführungsmethode im Befehl verwenden:

$command = $connection->createCommand('UPDATE post SET status=1 WHERE id=1');
$command->execute();
Nach dem Login kopieren

Sie können die Methoden insert, update und delete verwenden, die basierend auf den Parametern entsprechendes SQL generieren und ausführen.

// 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();
Nach dem Login kopieren

Empfohlen: "YII-Tutorial"

Das obige ist der detaillierte Inhalt vonSo stellen Sie mithilfe des PHP-YII-Frameworks eine Verbindung zur Datenbank her. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage