2012-09-30 2 views
0

최선의 방법을 사용하여 1 개 등록을 선택하는 방법 :YII는 :처럼 UPDATE 필드를 사용하여, 나는 데이터베이스에 내가 1 개 등록을 선택하려면이 테이블에서 테이블을

select * from website order by update asc limit 1; 

이 더 나은입니다 createCommand를 사용하는 것보다 등록을로드하는 방법은?

한 번 등록을로드하면 업데이트 필드를 업데이트하는 방법은 무엇입니까?

활성 레코드를 사용하는 것이 좋습니다.

+0

FYI : 적극적인 레코드 패턴은 대다수가 안티 패턴으로 간주되어 광범위한 [기술 부채] (http://martinfowler.com/bliki/TechnicalDebt.html)를 유발하고 [SRP] (http : // en.wikipedia.org/wiki/Single_responsibility_principle). –

답변

3

당신과 같이 CDbCriteria 및 CActiveRecord와 모델을 사용하여 데이터베이스 테이블에서 하나 개의 행을 선택할 수 있습니다

$criteria = new CDbCriteria; 
$criteria->order = '`update` ASC'; 
$model = Registration::model()->find($criteria); 

을 모델이 '등록'이라고 가정하면.

CDbCriteria의 order 속성 및 CActiveRecord의 find() 메서드에 대한 설명서를 참조하십시오.

그런 다음 다른 모든 활동 기록과 당신이 할 수있는 기록을 편집하고 평소처럼 저장할 수 있습니다, 즉

$model->update = new CDbExpression('NOW()'); 
$model->save(); 

(또는 당신이 될하기 위해 '갱신'필드의 설정에 원하는)

+0

10x, 여기에 새로운 것을 배웠습니다 –

+0

도움이 됨으로써 기쁜 문제 없어요! '확실한 가이드'의 [Active Records] (http://www.yiiframework.com/doc/guide/1.1/en/database.ar) 섹션을 살펴보고 거기에 좋은 것들이 많이 있습니다. – Stu