Maison > cadre php > YII > le corps du texte

Comment se connecter à la base de données en utilisant le framework php yii

angryTom
Libérer: 2019-11-04 14:15:58
original
2871 Les gens l'ont consulté

Cet article présente principalement les didacticiels de configuration de base de données et d'exemples d'opérations SQL dans le framework Yii de PHP. Yii prend en charge la liaison de diverses bases de données. L'article donne principalement des exemples d'utilisation de diverses instructions de requête dans Yii.

Comment se connecter à la base de données en utilisant le framework php yii

Comment connecter le framework php yii à la base de données

Accès à la base de données ( DAO )

Yii inclut une couche d'accès aux données (DAO) construite sur PHP PDO fournit une API unifiée pour différentes bases de données. ActiveRecord fournit des bases de données et des modèles (M, Model) dans MVC, QueryBuilder est utilisé pour. créer des instructions de requête dynamiques. DAO fournit des requêtes SQL simples et efficaces, qui peuvent être utilisées à divers endroits pour interagir avec la base de données

Yii prend en charge les bases de données suivantes par défaut (SGBD) :

MySQLMariaDBSQLitePostgreSQLCUBRID. : Version>= 9.3. (En raison d'un bug dans l'extension PHP PDO, la valeur de référence sera invalide, vous devez donc utiliser 9.3 côté client et côté serveur de CUBRID)OracleMSSQL : Version>

1. Configuration

Pour commencer à utiliser la base de données, vous devez d'abord configurer le composant de connexion à la base de données, ce qui est obtenu en ajoutant le composant db à la configuration de l'application (le "de base " L'application Web est config/web.php), DSN (Data Source Name) est le nom de la source de données, utilisé pour spécifier les informations de la base de données. Comme indiqué ci-dessous :

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',
    ],
  ],
  // ...
];
Copier après la connexion

2. Après avoir configuré le composant de connexion , vous pouvez utiliser la syntaxe suivante pour accéder :

$connection = \Yii::$app->db;
Copier après la connexion

Si vous souhaitez vous connecter à la base de données via ODBC, vous devez configurer l'attribut yiidbConnection::driverName, par exemple :

'db' => [
  'class' => 'yii\db\Connection',
  'driverName' => 'mysql',
  'dsn' => 'odbc:Driver={MySQL};Server=localhost;Database=test',
  'username' => 'root',
  'password' => '',
],
Copier après la connexion

Si vous ne souhaitez pas définir la connexion à la base de données en tant que composant d'application global, vous pouvez la configurer dans le code Utiliser pour l'initialisation directe :

$connection = new \yii\db\Connection([
  'dsn' => $dsn,
   'username' => $username,
   'password' => $password,
]);
$connection->open();
Copier après la connexion

3 Si vous devez exécuter du SQL supplémentaire. requêtes après avoir créé la connexion, vous pouvez ajouter le code suivant au fichier de configuration de l'application :

return [
  // ...
  'components' => [
    // ...
    'db' => [
      'class' => 'yii\db\Connection',
      // ...
      'on afterOpen' => function($event) {
        $event->sender->createCommand("SET time_zone = 'UTC'")->execute();
      }
    ],
  ],
  // ...
];
Copier après la connexion

Si exécuté Si SQL ne renvoie aucune donnée, vous pouvez utiliser la méthode d'exécution dans la commande :


$command = $connection->createCommand('UPDATE post SET status=1 WHERE id=1');
$command->execute();
Copier après la connexion

Vous pouvez utiliser les méthodes d'insertion, de mise à jour et de suppression, qui généreront du SQL approprié en fonction des paramètres et l'exécuteront.

// 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();
Copier après la connexion

Recommandé : "

Tutoriel YII"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal