Yii框架连接数据库学习笔记

作者:袖梨 2022-06-25

配置数据库连接 在protected/config/main.php文件中:

 代码如下 复制代码


'db'=>array(
 'connectionString'=>'mysql:host=localhost;dbname=testdrive',
 'emulatePreare'=>true,
 'username'=>'root',
 'password'=>'',
 'charset'=>'utf8',
 ),

定义数据库操作类:models

 代码如下 复制代码


 
class User extends CActiveRecord{
 public static function model(__CLASS__){
 
return parent::model($className);
 
} www.111com.net
 //静态方法model()是每一个AR类所必须的。
 
public function tableName(){
 
return '{{User}}';
 
}
 }
 
?>

实例化数据库操作类:controllers

 代码如下 复制代码


 class UserController extends Controller{
 
public function actionIndex(){
 
$model = new User;
 $model->username = 'admin';
 $model->password = '123456';
 $model->email = '[email protected]';
 var_dump($model->save());
 exit;
 $this->render('index');
 
}
 
}
 
?>

读取记录:

 

 代码如下 复制代码

//查找满足指定条件的结果中的一行
 
$user = User::model->find($condition,$params);
 
//查找具有指定主键值得那一行
 
$user = User::model->findByPk($postId,$condition,$params);
 
//查找具有指定属性值的行
 
$user = User::model->findByAttributes($attributes,$condition,$params);
 
//通过指定的SQL语句查找结果中的第一行
 $user = User::model->findBySql($sql,$params);
 
// 查找满足指定条件的所有行
 
$posts=Post::model()->findAll($condition,$params);
 
// 查找带有指定主键的所有行
 
$posts=Post::model()->findAllByPk($postIDs,$condition,$params);
 
// 查找带有指定属性值的所有行
 
$posts=Post::model()->findAllByAttributes($attributes,$condition,$params);
 
// 通过指定的SQL语句查找所有行
 
$posts=Post::model()->findAllBySql($sql,$params);
我们可以让$condition成为一个CDbCriteria的实例。


$criteria = new CDbCriteria;
 
$criteria->select = 'title'; //只选择'title'列
 
$criteria->condition = 'postID=:postID';
 
$criteria->params = array(':postID'=>10);
 
$post = Post::model->find($criteria); //$params不需要了
 // 获取满足指定条件的行数 www.111com.net
 
$n=Post::model()->count($condition,$params);
 
// 通过指定的 SQL 获取结果行数
 
$n=Post::model()->countBySql($sql,$params);
 
// 检查是否至少有一行复合指定的条件
 
$exists=Post::model()->exists($condition,$params);

更新记录:

 代码如下 复制代码

 

$post = Post::model->findByPk(10);
 
$post->title = 'new post title';
 
$post->save(); //将更改保存到数据库
 
//更新符合指定条件的行
 
Post::model->updateAll($attributes,$condition,$params);
 
//更新符合指定条件和主键的行
 
Post::model->updateByPk($pk,$attributes,$condition,$params);
 
//更新满足指定条件的行的计数列
 
Post::model->updateCounters($counters,$condition,$params);


删除数据:

 代码如下 复制代码

 

$post=Post::model()->findByPk(10); // 假设有一个帖子,其 ID 为 10
 
$post->delete(); // 从数据表中删除此行
 
// 删除符合指定条件的行
 
Post::model()->deleteAll($condition,$params);
 
// 删除符合指定条件和主键的行
 
Post::model()->deleteByPk($pk,$condition,$params);

相关文章

精彩推荐