Yii 数据库 2.0,这是一个重大版本,它现代化了数据库抽象层,引入了 PHP 8.1+ 的特性、增强的类型安全性和强大的新功能。驱动程序也已发布:PostgreSQL 、MySQL/MariaDB 、MSSQL 、Oracle 和 SQLite 。
通过 composer 安装
composer require yiisoft/db yiisoft/db-sqlite
说明:您必须安装
yiisoft/db以及至少一个数据库驱动程序(例如yiisoft/db-mysql、yiisoft/db-pgsql、yiisoft/db-sqlite等)才能实际连接到数据库。
要连接到数据库,请创建适当驱动程序的实例:
use Yiisoft\Db\Sqlite\Connection;
use Yiisoft\Db\Sqlite\Driver;
/**
* @var Psr\SimpleCache\CacheInterface $cache
*/
// 创建数据库连接
$db = new Connection(
new Driver(
'sqlite:memory:'
),
new SchemaCache(
$cache
),
);
然后,您可以使用 $db 对象来执行 SQL 查询、管理事务并执行其他数据库操作。 以下是一些示例:
use Yiisoft\Db\Connection\ConnectionInterface;
/**
* @var ConnectionInterface $db
*/
// Query builder
$rows = $db
->select(['id', 'email'])
->from('{{%user}}')
->where(['last_name' => 'Smith'])
->limit(10)
->all();
// Insert
$db->createCommand()
->insert(
'{{%user}}',
[
'email' => 'mike@example.com',
'first_name' => 'Mike',
'last_name' => 'Smith',
],
)
->execute();
// Transaction
$db->transaction(
staticfunction (ConnectionInterface $db) {
$db->createCommand()
->update('{{%user}}', ['status' => 'active'], ['id' => 1])
->execute();
$db->createCommand()
->update('{{%profile}}', ['visibility' => 'public'], ['user_id' => 1])
->execute();
}
)