=======================================
public function getMinLimit () {
$sql = "...";
$result = yii::app()->db->createCommand($sql);
$query = $result->queryAll();
return array (
$query [0] ['max'],
);
}
$connection=Yii::app()->db;
$sql="SELECT u.account,i.* FROM sys_user as u left join user_info as i on u.id=i.user_id";
$rows=$connection->createCommand
($sql)->query();
foreach ($rows as $k => $v ){
echo $v['add_time'];
}
======================================== 事务
$db = Yii::app()->db;
$dbTrans = $db->beginTransaction();
$dbTrans->commit();
$dbTrans->rollback();
======================================== 分页
一般写法:
$criteria = new CDbCriteria;
$count = DnOnline::model()->count($criteria);
$pages = new CPagination($count);
$pages->pageSize = 5;
$pages->applylimit($criteria);
$model = DnOnline::model()->findAll($criteria);
记得控制器里有个函数paginate($itemCount,$pageSize=null,$pageVar=null)
CDB写法:
$criteria = new CDbCriteria;
$sql = "SELECT * FROM USER";
$model= Yii::app()->db->createCommand($sql)->queryAll();
$pages = new CPagination(count($model));
$pages->pageSize = 4;
$pages->applylimit($criteria);
$model=Yii::app()->db->createCommand($sql." LIMIT :offset,:limit");
$model->bindValue(':offset', $pages->currentPage*$pages->pageSize);
$model->bindValue(':limit', $pages->pageSize);
$model=$model->queryAll();
或者:
$criteria = new CDbCriteria;
$connection=Yii::app()->db;
$sql="SELECT u.account,i.* FROM sys_user as u left join user_info as i on u.id=i.user_id ";
$model= Yii::app()->db->createCommand($sql)->queryAll();
$pages = new CPagination(count($model));
$pages->pageSize = 4;
$pages->applylimit($criteria);
$model=Yii::app()->db->createCommand($sql." LIMIT :offset,:limit");
$model->bindValue(':offset', $pages->currentPage*$pages->pageSize);
$model->bindValue(':limit', $pages->pageSize);
$model=$model->queryAll();
======================================== 一、查询数据集合
1、$admin=Admin::model()->findAll
($condition,$params);
该方法是根据一个条件查询一个集合,如:
findAll("username=:name",array(":name"=>$username));
2、$admin=Admin::model()->findAllByPk($postIDs,$condition,$params);
findAllByPk($id,"name like ':name' and age=:age",array(':name'=>$name,'age'=>$age));
该方法是根据主键查询一个集合,可以使用多个主键,如:
findAllByPk(array(1,2));
3、$admin=Admin::model()->findAllByAttributes($attributes,$condition,$params);
该方法是根据条件查询一个集合,可以是多个条件,把条件放到数组里面,如:
findAllByAttributes(array('username'=>'admin'));
4、$admin=Admin::model()->findAllBySql($sql,$params);
该方法是根据SQL语句查询一个数组,如:
findAllBySql("select *from admin whereusername=:name",array(':name'=>'admin'));
======================================== 二、查询对像
的方法
1、$admin=Admin::model()->findByPk
($postID,$condition,$params);
根据主键查询出一个对象,如:findByPk(1);
2、$row=Admin::model()->find
($condition,$params);
根据一个条件查询出一组数据,可能是多个,但是他只返回第一行数据,如:
find('username=:name',array(':name'=>'admin'));
$userinfo=Userinfo::model()->find(array('condition'=>'user_id=:user_id','params'=>array(':user_id'=>$uid)));
print_r($userinfo->user_id);
3、$admin=Admin::model()->findByAttributes
($attributes,$condition,$params);
该方法是根据条件查询一组数据,可以是多个条件,把条件放到数组里面,他查询的也是第一条数据,如:
findByAttributes(array('username'=>'admin'));
4、$admin=Admin::model()->findBySql
($sql,$params);
该方法是根据SQL语句查询一组数据,他查询的也是第一条数据,如:
findBySql("select *from admin whereusername=:name",array(':name'=>'admin'));
5、拼一个获得SQL的方法,在根据find查询出一个对象
$criteria=new CDbCriteria;
$criteria->select='username'; // only select the 'title' column
$criteria->condition='username=:username';
$criteria->params=array(':username=>'admin');
$post=Post::model()->find($criteria);
// $params isnot needed
======================================== 三、查询个数,判断查询是否有结果
1、$n=Post::model()->count
($condition,$params);
该方法是根据一个条件查询一个集合有多少条记录,返回一个int型数字,如
count("username=:name",array(":name"=>$username));
2、$n=Post::model()->countBySql
($sql,$params);
该方法是根据SQL语句查询一个集合有多少条记录,返回一个int型数字,如
countBySql("select *from admin whereusername=:name",array(':name'=>'admin'));
3、$exists=Post::model()->exists($condition,$params);
该方法是根据一个条件查询查询得到的数组有没有数据,如果有数据返回一个true,否则没有找到
$sql = "select count(*) as count from " . $this->tableName() . " where user_id = $userId";
$query = $result->queryAll();
$pageSize =10;
$count = $query [0] ['count'];
$pageCount = ceil($count / $pageSize);
return $pageCount;
======================================== 四、添加的方法
$admin=newAdmin;
$admin->username=$username;
$admin->password=$password;
if($admin->save
()>0){
echo "添加成功";
}else{
echo "添加失败";
}
$userLimit = new UserLimit();
$userLimit->item = 0.30000;
if($userLimit->insert
(){
}
======================================== 五、修改的方法
$userLimitRet = UserLimit::model()->findByPk
(array (
'user_id' => $userId,
'category_id' => $v
));
$userLimitRet->order = $order;
if (! $userLimitRet->update
()) {
}
$userAmount=userAmount::model()->findByPk
($userId);
$userAmount->credit=Yii::app()->request->getParam('credit',10000);
$ret = $userAmount->save
();
1、Post::model()->updateAll
($attributes,$condition,$params);
$count =Admin::model()->updateAll(array('username'=>'11111','password'=>'11111'),'password=:pass',array(':pass'=>'1111a1'));
if($count>0){
echo "修改成功";
}else{
echo "修改失败";
}
$ret = $this->updateAll
(array (
'set' => $Set
), " user_id in ( " . $userIds . " )
and category_id = " . $categoryId);
if($ret){
return true;
}else {
return false;
}
2、Post::model()->updateByPk
($pk,$attributes,$condition,$params);
$count =Admin::model()->updateByPk(1,array('username'=>'admin','password'=>'admin'));
$count =Admin::model()->updateByPk(array(1,2),array('username'=>'admin','password'=>'admin'),'username=:name',array(':name'=>'admin'));
if($count>0){
echo "修改成功";
}else{
echo "修改失败";
}
$pk代表主键,可以是一个也可以是一个集合,$attributes代表是要修改的字段的集合,$condition代表条件,$params传入的值
3、Post::model()->updateCounters
($counters,$condition,$params);
$count=Admin::model()->updateCounters(array('status'=>1),'username=:name',array(':name'=>'admin'));
if($count>0){
echo "修改成功";
}else{
echo "修改失败";
}
array('status'=>1)代表数据库中的admin表根据条件username='admin',查询出的所有结果status字段都自加1
======================================== 六、删除的方法
1、Post::model()->deleteAll($condition,$params);
$count = Admin::model()->deleteAll('username=:nameandpassword=:pass',array(':name'=>'admin',':pass'=>'admin'));
$id=1,2,3
deleteAll('id in(".$id.")');删除id为这些的数据
if($count>0){
echo "删除成功";
}else{
echo "删除失败";
}
2、Post::model()->deleteByPk($pk,$condition,$params);
$count = Admin::model()->deleteByPk(1);
$count =Admin::model()->deleteByPk(array(1,2),'username=:name',array(':name'=>'admin'));
if($count>0){
echo "删除成功";
}else{
echo "删除失败";
}
分享到:
相关推荐
YII框架翻译整理最终稿-大部分来源于yii官方网站,但是有部分说明不太清晰,并且部分翻译没有,本人进行了翻译补全,整理成了此文档。方便阅读。
Yii框架数据库操作分享ppt (Mac版,windows需转换格式)
很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架
php YII框架数据库备份模块
Yii框架详解
yii2高级多应用脚手架,下载yii-advanced-app-2.0.36.tgz直接使用开发,下载不了的朋友可以方便下载使用
yii-advanced-app-2.0.4 下载
主要介绍了Yii框架数据库查询、增加、删除操作,结合实例形式总结分析了Yii框架数据库查询、增加、删除相关模型与控制器使用技巧,需要的朋友可以参考下
yii对象操作、直接数据库操作、事物等操作。几乎所有的操作都收录了
官网原版,供不方便下载的开发者使用
yii框架yii框架yii框架yii框架yii框架yii框架yii框架yii框架yii框架yii框架yii框架yii框架yii框架yii框架yii框架yii框架yii框架yii框架
本书首先介绍 PHP 框架技术的概念及其应用领域,然后开始仿照 Yii 框架源代码 自定义框架,其中包括了 MVC 设计模式、单入口模式和应用(前端控制器模式)的实现。 充分了解了这部分知识后,读者对 Yii 框架也有了...
据说是超越所有的PHP框架php最新框架YII框架php最新框架YII框架
yii2-schemadump 从现有数据库生成模式。演示版要求PHP 7.3或更高版本Yii 2.x安装composer require --dev jamband/yii2-schemadump用法在config / console.php中添加以下内容: return [ . . . 'components' => [ . ...
Yii2框架basic版本,修复了 yii\web\ViewAction 类中的安全问题。
Yii Yii框架 Yii框架快速入门,自己整理的很全的,很容易看懂
本文实例讲述了yii2.0框架数据库操作。分享给大家供大家参考,具体如下: 添加 $id = \Yii::$app->db ->createCommand() ->insert('表名',['car_num' => $car_num, 'lg_shop_id' => $shop_id]) ->execute(); batch...
本文实例讲述了Yii框架 session 数据库存储操作方法。分享给大家供大家参考,具体如下: 在组件中声明session 组件开启数据库库存储 [ 'components' => [ 'db' => [ 'class' => 'yii\db\Connection', 'dsn' => ...
YII2.0的中文离线html版,还有YII2.0的英文离线html版和yii-guide-2.0-zh-cn 官方中文文档PDF,请点头像自行下载,谢谢
本文实例讲述了Yii 框架使用数据库(databases)的方法。分享给大家供大家参考,具体如下: 配置数据库连接 ¶ 开始之前,请确保你已经安装了 PHP PDO 扩展和你所使用的数据库的 PDO 驱动(例如 MySQL 的 pdo_mysql)...