Yii操作数据库的3种方法

网络编程 2025-03-29 08:32www.168986.cn编程入门

深入Yii框架下的数据库操作艺术:三种核心方法的

一、原汁原味的SQL执行:PDO方式

在Yii框架中,使用PDO方式执行原生SQL语句是一种直接而高效的方式。代码示例如下:

```php

$sql = "你的原生态sql语句"; //在此处输入你的SQL语句

::model()->dbConnection->createCommand($sql)->execute();

```

通过这种方法,你可以灵活地执行任何复杂的SQL语句,满足各种数据库操作需求。

二、Active Record方式

Active Record是Yii中一种强大的对象关系映射(ORM)方式,它允许你以面向对象的方式操作数据库。

(1)New方式

```php

$post=new Post;

$post->title='sample post';

$post->content='post body content';

$post->save();

```

通过创建模型对象,你可以像操作普通PHP对象一样来操作数据库记录。

(2)Criteria方式

Criteria方式提供了一种更灵活、更强大的查询构建方式。你可以使用CDbCriteria实例来指定复杂的查询条件。示例代码如下:

```php

$criteria=new CDbCriteria;

$criteria->select='title'; // 只选择'title'列

$criteria->condition='postID=:postID';

$criteria->params=array(':postID'=>10);

$post=Post::model()->find($criteria);

```

你也可以使用数组来替代CDbCriteria,示例代码如下:

```php

$post=Post::model()->find(array(

'select'=>'title',

'condition'=>'postID=:postID',

'params'=>array(':postID'=>10),

));

```

当需要根据多个列的值进行查询时,可以使用findByAttributes()方法。此方法允许你提供一个以列名为键、值为值的数组,然后根据这些值进行查询。需要注意的是,在一些框架中,类似findByNameAndTitle的方法可能会引起混淆、冲突和列名大小写敏感的问题。

三、Query Builder方式

Query Builder方式是一种更直观、更易用的查询构建方式。示例代码如下:

```php

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

```

通过Query Builder,你可以以链式调用的方式构建查询语句,使代码更简洁、易读。Query Builder还提供了丰富的查询方法和功能,可以满足各种复杂的查询需求。Yii框架提供了三种强大的数据库操作方式,你可以根据实际需求选择最适合自己的方式。无论你是初学者还是资深开发者,都能在这三种方式中找到自己的操作风格。

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by