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();

发表评论

电子邮件地址不会被公开。 必填项已用*标注