Yii操作数据库的3种方法


Posted in PHP onMarch 11, 2014

一、执行原生太SQL的PDO方式。

$sql = "";//原生态sql语句 
xx::model()->dbConnection->createCommand($sql)->execute();

二、Active Record方式
(1)New 方式
$post=new Post; 
$post->title='sample post'; 
$post->content='post body content'; 
$post->save();

(2)Criteria方式
也可以使用 $condition 指定更复杂的查询条件。 不使用字符串,我们可以让 $condition 成为一个 CDbCriteria 的实例,它允许我们指定不限于 WHERE 的条件。
$criteria=new CDbCriteria; 
$criteria->select='title';  // 只选择 'title' 列 
$criteria->condition='postID=:postID'; 
$criteria->params=array(':postID'=>10); 
$post=Post::model()->find($criteria);

一种替代 CDbCriteria 的方法是给 find 方法传递一个数组。 数组的键和值各自对应标准(criterion)的属性名和值,上面的例子可以重写为如下:
$post=Post::model()->find(array( 
    'select'=>'title', 
    'condition'=>'postID=:postID', 
    'params'=>array(':postID'=>10), 
));

当一个查询条件是关于按指定的值匹配几个列时,我们可以使用 findByAttributes()。我们使 $attributes 参数是一个以列名做索引的值的数组。在一些框架中,此任务可以通过调用类似 findByNameAndTitle 的方法实现。虽然此方法看起来很诱人,但它常常引起混淆、冲突和比如列名大小写敏感的问题。
三、Query Builder 方式
$user = Yii::app()->db->createCommand() 
    ->select('id, username, profile') 
    ->from('tbl_user u') 
    ->join('tbl_profile p', 'u.id=p.user_id') 
    ->where('id=:id', array(':id'=>$id)) 
    ->queryRow();
PHP 相关文章推荐
网站加速 PHP 缓冲的免费实现方法
Oct 09 PHP
PHP新手上路(十四)
Oct 09 PHP
增加反向链接的101个方法 站长推荐
Jan 31 PHP
PHP常用函数小技巧
Sep 11 PHP
php中json_encode处理gbk与gb2312中文乱码问题的解决方法
Jul 10 PHP
php截取字符串函数分享
Feb 02 PHP
Java中final关键字详解
Aug 10 PHP
php对二维数组进行相关操作(排序、转换、去空白等)
Nov 04 PHP
最新最全PHP生成制作验证码代码详解(推荐)
Jun 12 PHP
PHP获取真实客户端的真实IP
Mar 07 PHP
php命令行写shell实例详解
Jul 19 PHP
PHP生成随机字符串实例代码(字母+数字)
Sep 11 PHP
php导出excel格式数据问题
Mar 11 #PHP
PHP中对于浮点型的数据需要用不同的方法解决
Mar 11 #PHP
php设置允许大文件上传示例代码
Mar 10 #PHP
php如何解决无法上传大于8M的文件问题
Mar 10 #PHP
php中3种方法删除字符串中间的空格
Mar 10 #PHP
CodeIgniter框架中_remap()使用方法2例
Mar 10 #PHP
PHP文件大小格式化函数合集
Mar 10 #PHP
You might like
MOTOROLA 摩托罗拉 MODEL 66-XI五灯中波收音机
2021/03/02 无线电
ThinkPHP的RBAC(基于角色权限控制)深入解析
2013/06/17 PHP
解析thinkphp中的M()与D()方法的区别
2013/06/22 PHP
网站防止被刷票的一些思路与方法
2015/01/08 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
Yii2结合Workerman的websocket示例详解
2018/09/10 PHP
thinkPHP框架通过Redis实现增删改查操作的方法详解
2019/05/13 PHP
JS对img进行操作(换图片/切图/轮换/停止)
2013/04/17 Javascript
js中生成map对象的方法
2014/01/09 Javascript
jQuery实现的多滑动门,多选项卡效果代码
2016/03/28 Javascript
第五篇Bootstrap 排版
2016/06/21 Javascript
jQuery插件echarts设置折线图中折线线条颜色和折线点颜色的方法
2017/03/03 Javascript
JS中获取 DOM 元素的绝对位置实例详解
2018/04/23 Javascript
在vue-cli搭建的项目中增加后台mock接口的方法
2018/04/26 Javascript
解决vue中使用less/sass及使用中遇到无效的问题
2020/10/24 Javascript
ant design pro中可控的筛选和排序实例
2020/11/17 Javascript
[55:35]DOTA2-DPC中国联赛 正赛 CDEC vs Dragon BO3 第二场 1月22日
2021/03/11 DOTA
python TKinter获取文本框内容的方法
2018/10/11 Python
Python threading的使用方法解析
2019/08/28 Python
详解Python3 pickle模块用法
2019/09/16 Python
给你一面国旗 教你用python画中国国旗
2019/09/24 Python
Python Celery多队列配置代码实例
2019/11/22 Python
pytorch下使用LSTM神经网络写诗实例
2020/01/14 Python
使用Django清空数据库并重新生成
2020/04/03 Python
Python接口开发实现步骤详解
2020/04/26 Python
解决更改AUTH_USER_MODEL后出现的问题
2020/05/14 Python
python开发前景如何
2020/06/11 Python
python3让print输出不换行的方法
2020/08/24 Python
Python实现自动整理文件的脚本
2020/12/17 Python
俄罗斯购买内衣网站:Trusiki
2020/08/22 全球购物
见习期自我鉴定范文
2014/03/19 职场文书
兴趣小组活动总结
2014/05/05 职场文书
幼儿园爱国卫生月活动总结
2014/06/30 职场文书
2014年党员学习“三严三实”思想汇报
2014/09/15 职场文书
行政执法队伍作风整顿个人剖析材料
2014/10/11 职场文书
基于Python实现射击小游戏的制作
2022/04/06 Python