Yii如何使用数据库

1.Yii如何使用数据库

Yii通过数据库访问对象(Database Access Objects,简称DAO)来使用数据库的。

DAO建立在“PHP数据对象(PDO)之上,并提供一套面向对象的API来访问数据库”

2.数据库的连接

数据库的连接通常放在配置文件中,/common/config/main-local.php中。

‘db‘ => [
            ‘class‘ => ‘yii\db\Connection‘,
            ‘dsn‘ => ‘mysql:host=localhost;dbname=yii2advanced‘,
            ‘username‘ => ‘root‘,
            ‘password‘ => ‘root‘,
            ‘charset‘ => ‘utf8‘,
        ],

这里表示会创建一个yii\db\Connection对象,并用这个对象访问数据库。

这个数据库连接对象的写法:Yii->$app->db

连接不同数据库的语句略微有些差异。

3,数据库查询(yii\db\Command)

用SQL查询语句来创建一个yii\db\Command的对象,调用对象的方法来执行SQL查询,返回值是字符型的数组。

$post  = Yii::$app->db->createCommand(‘SELECT * FROM post‘)->queryAll();

SQL语句还可以绑定参数。

$post = Yii::$app->db->createCommand(‘SELECT * FROM post WHERE id=:id AND status=:status‘)

->bindValue(‘:id‘,$_GET[‘id‘])

->bindValue(‘:status‘,2)

->queryOne();

4,yii\db\Command的优缺点

1,简单,只需要处理sql语句和数组就行了(优点)

2,高效,通过sql语句来查询数据库非常高效。(优点)

----------------------------------------------------------

1,不同的数据库系统的sql语句会有些差别,因此无法做到代码适用于多种数据库系统。(缺点)

2,用数组,而没有用到面向对象的方式来管理数据,代码难维护。(缺点)

3,如果不小心,会留下SQL注入这种不安全因素。(缺点)

时间: 2024-10-12 23:38:22

Yii如何使用数据库的相关文章

Yii 框架里数据库操作详解-[增加、查询、更新、删除的方法 'AR模式']

public function getMinLimit () {        $sql = "...";        $result = yii::app()->db->createCommand($sql);        $query = $result->queryAll();         return array (                $query [0] ['max'],         );    } $connection=Yii::

配置yii访问远程数据库

1.将hdp002的数据库放到hdp004后,发现yii出现找不到表messages的迹象.用hdp002远程登录hdp004后发现,原来是hdp004没有授权给hdp002,用下面的sql语句即可: + ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 在安装mysql的机器上运行: 1.d:\mysql\bin\>mysql -h localhost -u root //这样应该可以进入MySQL服务器 2

Yii 1 转载 数据库操作

Yii 1.0数据库操作 查询.增加.更新.删除 1.根据条件查询一个集合 $objectResult=Post::model()->findAll($condition,$params);$objectResult=Post::model()->findAll("username=:name",array(":name"=>$username));$objectResult=RepairItem::model()->findAll(&quo

sql两个表的组合查询以及yii下使用数据库查询

sql两个表的组合查询  使用 join on 例如:两个表查询: select u.username, t.title from user u join task t on u.id = t.id; 其中  user u 是用来把表名简化   join则是加入其他的表    on则是表示查询的条件   u.username 则是表示user表中的username字段 同样的道理  多表查询的原理也是一样的 这是sql语句: select * from user u join task t on

Yii 2.0 数据库简单操作(转)

开始使用数据库首先需要配置数据库连接组件,通过添加 db 组件到应用配置实现("基础的" Web 应用是 config/web.php),DSN( Data Source Name )是数据源名称,用于指定数据库信息.如下所示: return [ // ... 'components' => [ // ... 'db' => [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=localhost;dbna

Yii高级模板的安装

1,如果你使用composer来安装的话,执行下边两条命令. composer global require "fxp/composer-asset-plugin:^1.2.0" composer create-project --prefer-dist yiisoft/yii2-app-advanced yii-application 2,如果你使用归档文件安装的话,请走以下流程(win): 前提条件:已经在path路径正确的php的路径. A 打开控制台终端,进入项目文件目录下,如

(转)yii流程,入口文件下的准备工作

yii流程 一 目录文件 |-framework     框架核心库 |--base         底层类库文件夹,包含CApplication(应用类,负责全局的用户请求处理,它管理的应用组件集,将提供特定功能给整个应用程 序),CComponent(组件类,该文件包含了基于组件和事件驱动编程的基础类,从版本1.1.0开始,一个行为的属性(或者它的公共成员变量或它通 过getter和/或setter方法??定义的属性)可以通过组件的访问来调用),CBehavior(行为类,主要负责声明事件和

YII框架分析笔记4:ar模型和db

YII中实现两种类型的模型,分别是表单模型和活动记录.在持久化数据方面,YII只实现了活动记录,对于复杂的数据关系可以用框架提供的DAO来自己写model,对应集成doctrine这样的ORM还没有仔细研究过. ar模型 框架中的model是CModel子类,CModel主要是一些验证与错误处理,并实现迭代器和数组访问接口,活动记录模型CActiveRecord是AR模型的基类. 每个AR类代表一个单独的数据表,一个AR实例则代表那个表中的一行.AR是一种对象关系映射(ORM)的设计模式,它负责

yii执行流程

yii执行流程 原文:http://www.cnblogs.com/bluecobra/archive/2011/11/30/2269207.html 一 目录文件 |-framework     框架核心库 |--base         底层类库文件夹,包含CApplication(应用类,负责全局的用户请求处理,它管理的应用组件集,将提供特定功能给整个应用程序),CComponent(组件类,该文件包含了基于组件和事件驱动编程的基础类,从版本1.1.0开始,一个行为的属性(或者它的公共成员