<?php
/**
* Created by PhpStorm.
* Date: 2017/6/2
* Time: 17:08
*/
class Dao extends Controller
{
//注意:涉及到表名要用{{表名}}才能自动加上表前缀
//执行原生语句
public function actionSql()
{
$res = Yii::app()->db->createCommand($sql)->execute();//返回影响条数
//使用createCommand()操作数据库对象时,数据库返回的结果是数组
createCommand($sql)->queryRow();//$sql 原生 sql语句//返回单条
CreateCommand($sql)->queryAll();//返回集合
}
//插入
public function actionCreate()
{
$res = Yii::app()->db->createCommand()->insert('表名', ['字段名' => '值']);
Yii::app()->db->getLastInsertID();//获取最新插入的ID
}
//修改
public function actionUpdate()
{
$res = Yii::app()->db->createCommand()->update('表名', ['字段名' => '值'], '字段名 > :值', [':值' => '值']);
}
//删除
public function actionDelete()
{
$res = Yii::app()->db->createCommand()->delete('表名', '字段名 = :值', [':值' => '值']);
}
//查单条
public function actionRow()
{
$res = Yii::app()->db->createCommand()->select('字段名,字段名')->from('表名')->where('字段名 = :值', [':值' => '值'])->queryRow();
}
//查多条
public function actionAll()
{
$res = Yii::app()->db->createCommand()->select('字段名,字段名')->from('表名')->where('字段名 > :值', [':值' => '值'])->queryAll();
}
//统计数据 数量
public function actionScalar()
{
$res = Yii::app()->db->createCommand()->select('count(字段名)')->from('表名')->where('字段名 < :值', [':值' => '值'])->queryScalar();
}
//指定列查询 id
public function actionColumn()
{
$res = Yii::app()->db->createCommand()->select('id')->from('表名')->where('字段名 > :值', [':值' => '值'])->queryColumn();
}
//复杂查询方式
public function actionAnd()
{
//查询ID 大于 1 并且 小于 5 的所有数据集合
//and() 字串形式
$res = Yii::app()->db->createCommand()->select('字段名,字段名')->from('表名')->where('字段名1 > :值1 and 字段名1 < :值2', [':值1' => '值1', ':值2' => '值2'])->queryAll();
//and() 数组形式
$res = Yii::app()->db->createCommand()->select('字段名,字段名')->from('表名')->where(['and', '字段名1 > 值1', '字段名1 < 值2'])->queryAll();
//andWhere() 方法
$res = Yii::app()->db->createCommand()->select('字段名,字段名')->from('表名')->where('字段名 > :值', [':值' => '值'])->andWhere('字段名 < :值', [':值' => '值'])->queryAll();
}
//使用in 查询出 ID 在 5 和 6 之间的数据集合
public function actionIn()
{
$res = Yii::app()->db->creatCommand()->select('字段名,字段名')->from('表名')->where('in', '字段名ID', [5, 6])->queryAll();
}
//使用like 查询 并且 id 大于6 小于 10
public function actionLike()
{
$res = Yii::app()->db->createCommand()->select('字段名,字段名')->from('表名')->where(['like', '字段名', '%关键字%'])->andWhere(['and', 'id > 6', 'id < 10'])->queryAll();
}
//查询出名字里 带有关键字的 的三条数据 ID 倒序 略过3条数据
public function actionLimit()
{
$res = Yii::app()->db->createCommand()->select('字段名,字段名')->from('表名')->where(['like', 'name', '%关键字%'])->limit(3)->offset(3)->order('id desc')->queryAll();
}
//关联查询
public function actionJoin()
{
//查询 ID 大于2 小于6 的所有用户信息 并查询 城市名称
$res = Yii::app()->db->createCommand()->select('u.id,u.name,c.name')
->from('表1 u')
->join('表2 c', 'c.id = u.cid')
->where('u.id > 2')
->andWhere('u.id < 6')
->queryAll();
}
}
网友评论