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 XML操作的各种方法解析(比较详细)
Jun 17 PHP
解决PHP在DOS命令行下却无法链接MySQL的技术笔记
Dec 29 PHP
php preg_filter执行一个正则表达式搜索和替换
Feb 27 PHP
PHP循环结构实例讲解
Feb 10 PHP
laravel 5 实现模板主题功能
Mar 02 PHP
php中关于socket的系列函数总结
May 18 PHP
PHP操作FTP类 (上传、下载、移动、创建等)
Mar 31 PHP
浅析Yii2 GridView 日期格式化并实现日期可搜索教程
Apr 22 PHP
支付宝服务窗API接口开发php版本
Jul 20 PHP
ThinkPHP3.2框架使用addAll()批量插入数据的方法
Mar 16 PHP
ThinkPHP框架整合微信支付之JSAPI模式图文详解
Apr 09 PHP
Yii 框架控制器创建使用及控制器响应操作示例
Oct 14 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
FCKeditor的安装(PHP)
2007/01/13 PHP
PHP数组实例总结与说明
2011/08/23 PHP
php Xdebug的安装与使用详解
2013/06/20 PHP
解决出现SoapFault (looks like we got no XML document)的问题
2017/06/24 PHP
jQuery学习笔记[1] jQuery中的DOM操作
2010/12/03 Javascript
JS链式调用的实现方法
2013/03/07 Javascript
jquery 获取dom固定元素 添加样式的简单实例
2014/02/04 Javascript
流量统计器如何鉴别C#:WebBrowser中伪造referer
2015/01/07 Javascript
利用jquery实现瀑布流3种案例
2016/09/18 Javascript
完美解决linux下node.js全局模块找不到的情况
2018/05/16 Javascript
Vue.js 十五分钟入门图文教程
2018/09/12 Javascript
JavaScrip数组去重操作实例小结
2019/06/20 Javascript
vue实现图片预览组件封装与使用
2019/07/13 Javascript
浅谈layui使用模板引擎动态渲染元素要注意的问题
2019/09/14 Javascript
解决微信授权成功后点击按返回键出现空白页和报错的问题
2020/06/08 Javascript
vue-router定义元信息meta操作
2020/12/07 Vue.js
[02:10]三分钟回顾完美世界城市挑战赛
2019/01/24 DOTA
Python爬取个人微信朋友信息操作示例
2018/08/03 Python
python 2.7 检测一个网页是否能正常访问的方法
2018/12/26 Python
Tensorflow分类器项目自定义数据读入的实现
2019/02/05 Python
Python弹出输入框并获取输入值的实例
2019/06/18 Python
python实现把二维列表变为一维列表的方法分析
2019/10/08 Python
python求质数列表的例子
2019/11/24 Python
Python tkinter三种布局实例详解
2020/01/06 Python
Python集合操作方法详解
2020/02/09 Python
Python监听键盘和鼠标事件的示例代码
2020/11/18 Python
html5中canvas学习笔记2-判断浏览器是否支持canvas
2013/01/06 HTML / CSS
英国拳击装备购物网站:RDX Sports
2018/01/23 全球购物
DogBuddy荷兰:找到你最完美的狗保姆
2019/04/17 全球购物
趣味比赛活动方案
2014/02/15 职场文书
《七颗钻石》教学反思
2014/02/28 职场文书
竞选班干部演讲稿100字
2014/08/20 职场文书
领导班子党的群众路线教育实践活动对照检查材料
2014/09/25 职场文书
2015年民兵整组工作总结
2015/07/24 职场文书
送给自己的励志语句:要安静的优秀,悄无声息的坚强
2019/11/26 职场文书
python之django路由和视图案例教程
2021/07/26 Python