这篇文章主要介绍了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框架怎么连接数据库相关推荐

  1. 使用php连接mysql数据库_PHP使用mysql与mysqli连接Mysql数据库用法示例

    本文实例讲述了PHP使用mysql与mysqli连接Mysql数据库的方法.分享给大家供大家参考,具体如下: 代码很简单直接上了 /** * @Author: HTL * @Description: ...

  2. 德鲁伊连接mysql数据库_Druid(德鲁伊)连接数据库

    Druid(德鲁伊)连接数据库: 连接mysql必导包[mysql-connector-java-5.1.47.jar] 使用druid连接数据库,首先需要导入相关jar包[例:druid-1.1.2 ...

  3. python web框架flask连接mysql数据库操作

    最近在用flask框架做一个python web项目,其中要连接数据库,所以总结如下: 如何用pycharm快速创建一个flask项目我就不详细说了,可以先创建虚拟环境,不过大部分的事pycharm都 ...

  4. php使用mysqli连接mysql数据库_PHP使用mysqli扩展连接MySQL数据库

    1.面向对象的使用方式 $db = new mysqli('localhost', 'root', '123456', 'dbname'); 如果建立连接时未指定数据库则选择使用的数据库,切换使用的数 ...

  5. php odbc连接mysql数据库_PHP 使用 ODBC 连接 Mysql 数据库

    Copy to Clipboard 引用的内容:[www.veryhuo.com] /p> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict ...

  6. xampp php连接mysql数据库_关于PHP xampp连接数据库之后查询失败,数据库连接成功,表中也有数据...

    @海源: <?php mysql_select_db("infosystem", $link);          //选择数据库 $q = "SELECT * F ...

  7. dz论坛连接mysql数据库_dz论坛搬家后连接数据库等教程

    dz搬家后,第一步就是上传源文件到网站根目录和导入数据库 然后修改对应的数据库连接配置文件 一共有三个 这样修改之后网站就可以访问啦 1.config/config_global.php $_conf ...

  8. jmeter mysql数据库_jmeter连接mysql数据库

    操作步骤: 1.加载mysql驱动 2.添加JDBC Connection Configuration 3.添加JDBC Request 4.监听其中添加查看结果树 5.在jdbc request中执 ...

  9. PHP怎么连接Mysql数据库

    PHP连接Mysql数据库的方法:1.使用mysqli连接mysql数据库,代码如"new mysqli($host,$user,$password,$dbName);":2.使用 ...

最新文章

  1. Redis详解和实战--云平台技术栈16
  2. hashMap和hashTable的区别(个人总结)
  3. 5.2.1 OS内核的I/O核心子系统及功能
  4. SQLSetEnvAttr
  5. WEB前端学习一 JS预解释
  6. SAP Spartacus breakpoint服务中platformID的注入逻辑
  7. hive 自定义元数据表_[一起学Hive]之十四-Hive的元数据表结构详解
  8. react(96)--switch做判断
  9. 这让全场的chinaakd
  10. WHERE和HAVING子句有什么区别?
  11. MySQL基础操作汇总二
  12. 黑马vue实战项目-(七)订单管理页面的开发
  13. ARDUINO 入门学习第三课
  14. mongodb 副本集Replica Set的keyfile验证
  15. linux驱动程序启动失败,打开程序提示加载驱动失败?三种故障原因及解决方法...
  16. 《el-descriptions》 边框重叠问题
  17. 【高数】变上限积分的等价无穷小替换
  18. 手机免流量,还会是天方夜谭吗?
  19. EC20 AT指令 列举
  20. inprivate浏览是什么意思_IE8的InPrivate浏览功能

热门文章

  1. doc es 中type_ElasticSearch: Index 和 Type 的区别
  2. 勒让德符号的说明及作用
  3. eclipse控制台中文输出乱码解决方法
  4. java计算机毕业设计流浪动物收容与领养源码+系统+数据库+lw文档+mybatis+运行部署
  5. 30天突破计算机三级考试
  6. java实验(1)JDK环境下编写Java程序
  7. 无惧断供,国产也能轻松替换“IOE”
  8. 微服务开发主流技术汇总
  9. el-menu入门学习
  10. CSO面对面|对话迷你世界,畅谈游戏行业的安全建设