yii框架如何连接mysql数据库_php yii框架怎么连接数据库

本文详细介绍了在PHP的Yii框架中配置和使用数据库的方法,包括配置数据库连接组件、使用DAO进行SQL操作,如INSERT、UPDATE、DELETE等,并支持多种数据库如MySQL、SQLite等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这篇文章主要介绍了PHP的Yii框架中使用数据库的配置和SQL操作实例教程,Yii支持绑定多种数据库,文中主要对各种查询语句在Yii中的使用给出了例子,需要的朋友可以参考下

be248327f88d46cc39afd966cb457b14.png

php yii框架怎么连接数据库

数据库访问 (DAO)

Yii 包含了一个建立在 PHP PDO 之上的数据访问层 (DAO). DAO为不同的数据库提供了一套统一的API. 其中ActiveRecord 提供了数据库与模型(MVC 中的 M,Model) 的交互,QueryBuilder 用于创建动态的查询语句. DAO提供了简单高效的SQL查询,可以用在与数据库交互的各个地方.

Yii 默认支持以下数据库 (DBMS):

MySQLMariaDBSQLitePostgreSQLCUBRID: 版本 >= 9.3 . (由于PHP PDO 扩展的一个bug 引用值会无效,所以你需要在 CUBRID的客户端和服务端都使用 9.3 )OracleMSSQL: 版本>=2005.

1、配置

开始使用数据库首先需要配置数据库连接组件,通过添加 db 组件到应用配置实现("基础的" Web 应用是 config/web.php),DSN( Data Source Name )是数据源名称,用于指定数据库信息.如下所示: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();

你可以使用insert,update,delete 方法,这些方法会根据参数生成合适的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教程》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值