Yii操作数据库的3种方法
一、执行原生太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();
(资源库 www.zyku.net)
您可能感兴趣的文章
- 03-31SQL Server 数据库分区分表(水平分表)
- 03-23帝国CMS跨数据库调用数据的用法说明
- 03-18phpStudy设置允许远程访问MySQL数据库
- 06-19帝国cms中如何批量修改数据库表前缀
- 03-31SQL Server 备份数据库并生成(.bak)文件
- 03-03phpmyadmin导入数据库出现413 Request Entity Too Lar
- 11-22Navicat整个数据库搜索某个字符串在哪个表的哪个字段
- 10-19护卫神主机大师SQL Server提示在数据库'master
- 10-19Microsoft SQL Server 2014数据库64位安装图解
- 10-18SQL Server 还原.bak文件到数据库的方法
- 02-23[mysql]ERROR 1364 (HY000): Field 's
- 02-14华为手机流量管理监控提醒设置教程
- 02-11小米11私密相册设置教程
- 10-19LOFTER浏览记录怎么查看
- 01-10手机图标壁纸秀-手机图标壁纸秀应用软
- 11-21php与mysql常见中文乱码问题解决办法
- 12-02捏咔创作二次元人物玩法分享
- 12-09苹果13如何截长图
- 02-03opporeno5pro应用分屏设置教程
- 03-24FastAdmin – 基于ThinkPHP和Bootstra
最近更新
阅读排行
猜你喜欢
- 02-28帝国CMS在IIS环境开启TAG伪静态后,中文
- 09-11ipadpro2021如何截图
- 12-22HTML <html> 标签
- 07-15帝国栏目列表设置会员查看权限
- 01-11五年级下册语文帮-五年级下册语文帮应
- 02-18Ajax打开新窗口被浏览器拦截的两种解
- 12-26小学语文同课文朗读-小学语文同课文朗
- 04-24vivox60pro开启隐藏软件方法
- 10-11iOS15快速删除软件步骤分享
- 02-28oppok9设置流量预警方法