db;" to connect Just go to the database."/> db;" to connect Just go to the database.">

Home  >  Article  >  PHP Framework  >  How to connect to the database using php yii framework

How to connect to the database using php yii framework

angryTom
angryTomOriginal
2019-11-04 14:15:582740browse

This article mainly introduces the database configuration and SQL operation example tutorials in PHP's Yii framework. Yii supports binding a variety of databases. The article mainly gives examples of the use of various query statements in Yii. Need Friends can refer to

How to connect to the database using php yii framework

php yii framework how to connect to the database

Database access ( DAO)

Yii includes a data access layer (DAO) built on PHP PDO. DAO provides a unified API for different databases. ActiveRecord provides databases and models ( M, Model) in MVC, QueryBuilder is used to create dynamic query statements. DAO provides simple and efficient SQL queries, which can be used in various places to interact with the database.

Yii supports the following databases by default ( DBMS):

MySQLMariaDBSQLitePostgreSQLCUBRID: Version>= 9.3. (Due to a bug in the PHP PDO extension, the reference value will be invalid, so you need to use 9.3 on both the client and server side of CUBRID)OracleMSSQL: Version> =2005.

1. Configuration

To start using the database, you first need to configure the database connection component, which is achieved by adding the db component to the application configuration (the "basic" Web application is config/web.php), DSN (Data Source Name) is the data source name, used to specify database information. As shown below:

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. After configuring the connection component, you can use the following syntax to access:

$connection = \Yii::$app->db;

If you want to connect to the database through ODBC, you need to configure the yii\db\Connection::driverName property, for example:

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

If you do not want to define the database connection as a global application component, It can be initialized directly in the code:

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

3. If you need to perform additional SQL queries after creating the connection, you can add the following code to the application configuration file:

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

If executing SQL does not return any data, you can use the execute method in the command:

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

You can use the insert, update, and delete methods. These methods will generate appropriate SQL based on the parameters and execute it.

// 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();

Recommended: "YII Tutorial"

The above is the detailed content of How to connect to the database using php yii framework. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn