下面介绍一下 Yii2.0 对数据库查询的一些简单的操作 User::find()->all(); 此方法返回所有数据; User::findOne($id); 此方法返回 主键 id=1...'小伙儿'])->all(); 此方法返回 ['name' => '小伙儿'] 的所有数据; User::find()->orderBy('id DESC')->all(); 此方法是排序查询...; User::find()->column(); 此方法返回查询结果中的第一列的值; User::find()->exists(); 此方法返回一个值指示是否包含查询结果的数据行;...('id > 10')->andWhere(['not', ['order_sn' => '']]); 获取订单号不为空的数据 Yii 为我们提供了非常丰富的查询,在这里小伙儿不一一列举了,下面是 api...链接,预知更多,请点击观看(点击 db 菜单即可) Yii2.0 查询数据库
给用户表起别名m /** * 获取用户信息 * @return \yii\db\ActiveQuery */ public function getUserInfo() { return
CDbConnection: 一个抽象数据库连接 CDbCommand: SQL statement CDbDataReader: 匹配结果集的一行记录 CDbTransaction:数据库事务 访问数据库前需要建立数据库连接...'; $command->text=$newSQL; // CDbCommand对象有两个方法execute()用于非查询SQL执行,而query(),通俗的讲就是用于SELECT查询 // execute...; $post->content = 'new content'; $post->save(); // 保存即插入 // AR最典型的功能就是执行CRUD操作 // DAO定位于解决复杂的数据库查询...,而AR定位于解决简单的数据库查询 // 一个AR类代表一张数据表,而一个AR对象代表表中的一行真实的记录,AR类继承CActiveRecord。...// 如果关系查询执行后没有匹配的结果,返回将会是NULL或空的数组。 2).eager loading approach 热心的关系查询 //这名字真的很萌!
::find()->batch(10); 每次取 10 条数据 User::find()->each(10); 每次取 10 条数据, 迭代查询 二、查询对象的方法 //根据主键查询出一个对象,如...name',array(':name'=>'admin')); if($count> 0){ echo "修改成功"; }else{echo "修改失败"; } //array('status'=>1)代表数据库中的...array(1,2),'username=:name',array(':name'=>'admin')); if($count>0){echo "删除成功"; }else{echo "删除失败"; } 直接数据库操作...i on u.id=i.user_id"; $rows=Yii::$app->db->createCommand($sql)->query(); foreach($rows as $k => $v){...->createCommand()->delete('user', 'status = 0')->execute(); 事务 //事务的基本结构(多表更新插入操作请使用事务处理) $dbTrans= Yii
在开发和维护一个数据库驱动的应用程序时,数据库的结构会随代码的改变而改变。...例如,在开发应用程序的过程中,会增加一张新表且必须得加进来; 在应用程序被部署到生产环境后,需要建立一个索引来提高查询的性能等等。...因为一个数据库结构发生改变的时候源代码也经常会需要做出改变,Yii 提供了一个 数据库迁移 功能,该功能可以记录数据库的变化, 以便使数据库和源代码一起受版本控制。...创建一个数据库迁移: yii migrate/create 这是一个通用的创建数据迁移格式,其中是必填的参数,用来描述当前迁移。...如下是所有这些数据库访问方法的列表: yii\db\Migration::execute(): 执行一条 SQL 语句 yii\db\Migration::insert(): 插入单行数据 yii\db
日常生活中我们一个项目一个数据库就足够了,但是难免会有意外,会使用多个数据库进行读写操作。...例如:从另一个数据库导入数据到现在的数据库 今天就探讨下,Yii2.0 如何连接多个数据库 配置 打开数据库配置文件 common\config\main-local.php,在原先的 db 配置项下面添加...db2(可随意取名字),配置第二个数据库的属性 'components' => [ 'db' => [ 'class' => 'yii\db\Connection',...'password' => '**', 'charset' => 'utf8', ], 'db2' => [ 'class' => 'yii...就可以连接多个数据库了,总结来说就是两步:配置数据库连接、新增 getDb 方法。
在 Yii 中,一个模型可以是 CModel 的一个实例或它的子类。通常一个模型类包括数据的属性,可能还会有不同的标签(有些是为了显示给用户时更友好),并且可以设置一些规则进行验证。...模型中的数据可能来自数据库的表或一个表单用户输入域。 Yii 实现了两种模型:表单模型(CFormModel 类)和 Active Record 模型(CActiveRecord 类)。...它能将这些数据存储在内存中,或者在一个 Active Record 的模型帮助下,存入数据库。 Active Record (AR)是一种设计模式,用面向对象的方式抽象的访问数据。...在 Yii 中,每一个 AR 对象的实例可以是 CActiveRecord 类或它的子类,它包装了数据库表或视图中的一行记录,并封装了所有逻辑和访问数据库的细节,如果有大部份的业务逻辑,则必须使用这种模型...数据库表中一行每列字段的值对应 AR 对象的一个属性。
1.简单查询: [[one()]] // 根据查询结果返回查询的第一条记录。 [[all()]] // 根据查询结果返回所有记录。...[[exists()]] // 返回一个值,该值指示查询结果是否有数据。 [[where()]] // 添加查询条件 [[with()]] // 该查询应执行的关系列表。...=>'1']); 删除: $model = Customer::findOne($id); $model->delete(); $model->deleteAll(['id'=>1]); 批量插入: Yii...] )->execute(); 事务: 普通事务,用于与 ajaxbtn 结合 public function saveWithTrans() { $transaction = Yii...public function saveWithTrans() { $transaction = Yii::$app->db->beginTransaction(); $error =
https://blog.csdn.net/u011415782/article/details/51736440 初学Yii框架,之前熟悉了一下Yii2,如今进行项目的维护,发现用的是...【1】首先到官网下载最新版的Yii框架 ?...我们需要的是framework文件夹,它是Yii框架的核心所在。 ? 【2】引入Yii框架。...补充:其他参考 YII框架学习心得网站 1.YII Framework 学习笔记 2.Yii 框架学习教程 3.Yii快速入门经典教程 4.study-PHP 5.Yii 框架快速入门经典教程...6.Yii 中文学习介绍
本文实例讲述了Yii 框架使用数据库(databases)的方法。...这个文件配置了数据库连接 yiidbConnection 的创建和初始化参数, 应用的 SQL 查询正是基于这个数据库。...上面配置的数据库连接可以在应用中通过 Yii::$app->db 表达式访问。...如果想要使用 Yii 没有捆绑支持的数据库,你可以查看以下插件: Informix IBM DB2 Firebird 创建活动记录 创建一个继承自活动记录类的类 Country, 把它放在 models...新的数据库请求将会以 LIMIT 5 OFFSET 5 查询并显示 希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。
简单查询 one(): 根据查询结果返回查询的第一条记录。 all(): 根据查询结果返回所有记录。 count(): 返回记录的数量。 sum(): 返回指定列的总数。...scalar(): 返回查询结果的第一行中的第一列的值。 column(): 返回查询结果中的第一列的值。 exists(): 返回一个值,该值指示查询结果是否有数据。...where(): 添加查询条件 with(): 该查询应执行的关系列表。 indexBy(): 根据索引的列的名称查询结果。 asArray(): 以数组的形式返回每条记录。...; Customer::find()->column(); 此方法返回查询结果中的第一列的值; Customer::find()->exists(); 此方法返回一个值指示是否包含查询结果的数据行;Customer...[ 'status' => '2' , 'uid' => '1' ]); 删除 model = Customer::findOne( id ); model -> delete (); 批量插入 Yii
数据库-多表查询-连接查询 同时查询多张表获取到需要的数据 比如:我们想查询到开发部有多少人,需要将部门表和员工表同时进行查询 多表查询的分类: 准备数据 -- 创建部门表 create table...-- 只查询一张表不能查询出员工名字和部门名字,需要使用多表操作 select * from emp, dept; 完成多表操作的两种方式: 表连接 子查询 1....,显示员工id,姓名,性别,工资和所在的部门名称 确定查询哪些表 确定表连接条件,员工表.dept_id = 部门表.id 的数据才是有效的 确定查询条件,我们查询的是唐僧的信息,员工表.name='唐僧...联合查询 Union (Mysql 支持) Mysql 为了查询所有表的关联数据,可以将左右连接的查询 联合一起来执行。...语法格式: -- 使用union联合合并左右外连接的查询结果,就是相当于全外连接查询了。
内连接:内连接也叫连接,还可以被称为普通连接或者自然连接,内连接是从结果表中删除与其他被连接表中没有匹配行的所有行,所以内连接可能会丢失信息。由于两表之间没有相...
Yii 调试器 Dork : debug/default/view?panel=config
数据库查找方式进阶 一.单表查询 1.查看表单选择段落 1.disinct 所有内容去重:select disinct * from 表名称; 指定字段去重:select disinct 字段 from..........) as 新名字 2.in关键字查询 "查询平均年龄大于25的部门名称 子查询方式: 平均年龄大于25的部门id有哪些?...筛选出平均年龄大于25的部门id 拿着部门id 去查询部门表查询" select name from dept where id in (select dept_id from emp group...on emp.dept_id = dept.id group by dept.name having avg(age) >25; 3.exists关键字查询 xists 后跟子查询 子查询有结果是为...既然是表就能链接起来 #综合练习: "查询每个部门工资最高的员工信息 先查询每个部门的最高工资 将查询结果与员工表联合起来 在加条件判断部门id相同并且 最高工资相同 则显示" select *from
第二步: 'mailer' => [ 'class' => 'yii\swiftmailer\Mailer', // send all mails to...qq.com'=>'admin'] ], ], 第三步: public function actionSendmail() { $mail = \YII
renderPartial(),要求处理输出结果 | |—-> 根据$view得到viewFile文件名 | renderFile(),要求返回渲染结果,做下一步处理 | |———–> 获取widget的数目 | 从Yii...::app()获得render CWebApplication::getViewRenderer 查询component['viewRenderer'],默认没有配置 | Then, 调用renderInternal...) | |————->yii.php | require(YiiBase.php) | |—————->YiiBase.php | Define YII_XXX global variable | Define...from Controller 这是客户化控制器的基本类,存在于components下 定义了页面的通用布局 | 使用CController构造函数创建对象CSiteController,具体初始化数据见yii...设置_controller和$id | | |<—————| | | 这里得到一个CAction的实例 | $this->getModule()作为parent,为空则使用Yii
1 多表查询 1.1 多表查询概述 多表查询就是从多个表中进行数据的查询操作,语法:select 列名列表 from 表名的列表 where......】:SELECT *FROM dept,emp; 从查询结果中可以看到共计15条数据,这个查询结果叫做笛卡尔积,如查询2个表,每个表中的数据条数分别为A,B,则查询的结果条数就是A*B;但是看如下结果,...`id`; 3)内连接查询注意事项: 从哪些表中查询; 条件是什么; 查询哪些字段; 1.2.2 外连接查询 1)左外连接:查询的是左表所有的数据及其交集部分。...语法:select 字段列表 from 表1 right [outer] join 表2 on 条件 1.2.3 子查询 【概念】:子查询就是查询中嵌套查询,称嵌套查询为子查询。...【子查询的不同情况】 1)子查询的结果是单列的 子查询可以作为条件,使用运算符进行判断(> >= < <= =),如上述的举例,下例也是 -- 查询员工工资小于平均工资的人 SELECT
2', 'charset' => 'utf8', ]; } 2、 调用相应的数据库 /** * @return \yii\db\Connection the database...::$app->get('gdb'); } 当然您也可以用gii进行创建,选择连接池处会出现你多数据库配置的相应db名称。...对数据库配置的应用。...(3)查询方面的建议 至于model的数据查询我就不介绍了,这方面教程肯定挺多的。还有很多朋友会去纠结联表的事情, yii2的model里支持联表,但是从性能考虑,尽量避免联表。...如何避免联表: 如查询文章列表,其中一项为分类名称,通过list取出文章分类的列表,将相对应的分类列表中分类名称, 这样的操作比联表效率要高。
可以说查询是数据库编程中最重要的一环,其用途是从一张表或多张表中检索出满足条件的数据信息 下面开始研究Select语句 Select 语句格式: Select [ALL DISTINCT] select_list..._1的表 Select * from 工龄_1 注: *表示查找表中的所有字段(列) 查询姓名列的所有数据(ALL) Select ALL 姓名 from 工龄_1 注意:当中有两个张三...查询结果没有重复的数据(DISTINCT) select distinct 姓名 from 工龄_1 WHERE子句 作用:指定条件过滤数据结果(行过滤) 举例: 查询新建的学生成绩表 select...select * from result_Info 查询“2000期中”(条件) 学科的平均分(按照语文,数学进行聚合) select course_Name,AVG (result) from...ASC 为升序 DESC 为降序 举例: 查询考试类型‘2000期中’,学科为语文的成绩 select * from result_Info where exam_No ='2000期中' and
领取专属 10元无门槛券
手把手带您无忧上云