yii框架如何连接mysql数据库_php yii框架怎么连接数据库
这篇文章主要介绍了PHP的Yii框架中使用数据库的配置和SQL操作实例教程,Yii支持绑定多种数据库,文中主要对各种查询语句在Yii中的使用给出了例子,需要的朋友可以参考下
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教程》
yii框架如何连接mysql数据库_php yii框架怎么连接数据库相关推荐
- 使用php连接mysql数据库_PHP使用mysql与mysqli连接Mysql数据库用法示例
本文实例讲述了PHP使用mysql与mysqli连接Mysql数据库的方法.分享给大家供大家参考,具体如下: 代码很简单直接上了 /** * @Author: HTL * @Description: ...
- 德鲁伊连接mysql数据库_Druid(德鲁伊)连接数据库
Druid(德鲁伊)连接数据库: 连接mysql必导包[mysql-connector-java-5.1.47.jar] 使用druid连接数据库,首先需要导入相关jar包[例:druid-1.1.2 ...
- python web框架flask连接mysql数据库操作
最近在用flask框架做一个python web项目,其中要连接数据库,所以总结如下: 如何用pycharm快速创建一个flask项目我就不详细说了,可以先创建虚拟环境,不过大部分的事pycharm都 ...
- php使用mysqli连接mysql数据库_PHP使用mysqli扩展连接MySQL数据库
1.面向对象的使用方式 $db = new mysqli('localhost', 'root', '123456', 'dbname'); 如果建立连接时未指定数据库则选择使用的数据库,切换使用的数 ...
- php odbc连接mysql数据库_PHP 使用 ODBC 连接 Mysql 数据库
Copy to Clipboard 引用的内容:[www.veryhuo.com] /p> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict ...
- xampp php连接mysql数据库_关于PHP xampp连接数据库之后查询失败,数据库连接成功,表中也有数据...
@海源: <?php mysql_select_db("infosystem", $link); //选择数据库 $q = "SELECT * F ...
- dz论坛连接mysql数据库_dz论坛搬家后连接数据库等教程
dz搬家后,第一步就是上传源文件到网站根目录和导入数据库 然后修改对应的数据库连接配置文件 一共有三个 这样修改之后网站就可以访问啦 1.config/config_global.php $_conf ...
- jmeter mysql数据库_jmeter连接mysql数据库
操作步骤: 1.加载mysql驱动 2.添加JDBC Connection Configuration 3.添加JDBC Request 4.监听其中添加查看结果树 5.在jdbc request中执 ...
- PHP怎么连接Mysql数据库
PHP连接Mysql数据库的方法:1.使用mysqli连接mysql数据库,代码如"new mysqli($host,$user,$password,$dbName);":2.使用 ...
最新文章
- Redis详解和实战--云平台技术栈16
- hashMap和hashTable的区别(个人总结)
- 5.2.1 OS内核的I/O核心子系统及功能
- SQLSetEnvAttr
- WEB前端学习一 JS预解释
- SAP Spartacus breakpoint服务中platformID的注入逻辑
- hive 自定义元数据表_[一起学Hive]之十四-Hive的元数据表结构详解
- react(96)--switch做判断
- 这让全场的chinaakd
- WHERE和HAVING子句有什么区别?
- MySQL基础操作汇总二
- 黑马vue实战项目-(七)订单管理页面的开发
- ARDUINO 入门学习第三课
- mongodb 副本集Replica Set的keyfile验证
- linux驱动程序启动失败,打开程序提示加载驱动失败?三种故障原因及解决方法...
- 《el-descriptions》 边框重叠问题
- 【高数】变上限积分的等价无穷小替换
- 手机免流量,还会是天方夜谭吗?
- EC20 AT指令 列举
- inprivate浏览是什么意思_IE8的InPrivate浏览功能