????Active Record
???????????????????????? PHP ??????в????????? SQL ???????? ???????????????????? Yii DAO
?????????????????
???????????£? ????? db ??????????????? CDbConnection ?????????????? ????????????????? db ???????????????????????? AR ??????????????????? CActiveRecord::getDbConnection()??
???????? AR ??
class Post extends CActiveRecord
{
public static function model($className=__CLASS__)
{
return parent::model($className);
}
public function tableName()
{
return 'tbl_post';
// return '{{post}}';  // ????????????????????????.
}
}
???????? AR ??????????????????????
return array(
'import'=>array(
'application.models.*'??
)??
);
????????????????????????????????? AR ??????????·?????? primaryKey()
public function primaryKey()
{
return 'id';
// ????????????????????????????μ?????
// return array('pk1'?? 'pk2');
}
???????????
$post=new Post;
$post->title='sample post';
$post->content='content for the sample post';
$post->create_time=time();
$post->save();
???????? Yii ?? ??????????????????????п????? CWebLogRoute ????????????????????????й??? SQL ???
??????????
// ????????????????????е?????
$post=Post::model()->find($condition??$params);
// ??????????????????????
$post=Post::model()->findByPk($postID??$condition??$params);
// ???????????????????
$post=Post::model()->findByAttributes($attributes??$condition??$params);
// ???????? SQL ?????????е?????
$post=Post::model()->findBySql($sql??$params);
???????????????? $condition ??????????????????
$criteria=new CDbCriteria;
$criteria->select='title';  // ???? 'title' ??
$criteria->condition='postID=:postID';
$criteria->params=array(':postID'=>10);
$post=Post::model()->find($criteria); // $params ???????
?????????? CDbCriteria ???????? find ??????????????顣
$post=Post::model()->find(array(
'select'=>'title'??
'condition'=>'postID=:postID'??
'params'=>array(':postID'=>10)??
));
??????find????? ??findAll?? findAllByPk?? findAllByAttributes?? findAllBySql?????? ???????κζ???????????????findAll ??????????????顣??? find ?????find ????????????????????? null??