Yii 데이터베이스 저장소 개체 DAO

2341 단어
Yii DAO는 주로 다음과 같은 네 가지 종류로 구성된다. CDbConnection: 하나의 데이터베이스 연결을 대표한다.CDbCommand: 데이터베이스로 실행되는 SQL 문을 나타냅니다.CDbDataReader: represents a forward-only stream of rows from a query result set. CDbTransaction: represents a DB 트랜잭션다음은 서로 다른 장면에서 Yii DAO의 사용법을 소개한다.데이터베이스 연결을 만들려면 CDbConnection 실례를 만들고 활성화해야 합니다.데이터베이스 연결 정보를 지정하는 데 사용되는 데이터 소스 이름(DSN)연결을 설정하려면 사용자 이름과 비밀번호가 필요할 수도 있습니다.데이터베이스에 연결하는 동안 오류가 발생하면 예외가 발생합니다(예: 잘못된 DSN 또는 잘못된 사용자 이름/암호).1 $connection=new CDbConnection($dsn,$username,$password); 2//establish connection. You may try…catch possible exceptions 3 $connection->active=true;//연결 활성화 4...//연결 닫기 5 $connection->active=false;CDbConnection은 CApplication Component에서 확장되기 때문에, 우리도 그것을 응용 구성 요소로 사용할 수 있습니다.config/main에서 이 목적을 실현하기 위해db (또는 다른 이름) 를 응용 프로그램 설정에 다음과 같이 설정할 수 있습니다.php 설정은 다음과 같습니다
      'db'=>array(

06 'class'=>'CDbConnection', 07 'connectionString'=>'mysql:host=localhost;dbname=testdb', 08 'username'=>'root', 09 'password'=>'password', 10 'emulatePrepare'=>true,

CDbConnection::autoConnect가false로 명확하게 설정되지 않으면 자동으로 활성화된 Yii:::app () ->db를 통해 이 DB 연결을 물어볼 수 있습니다. 이 방법을 통해 이 단일한 DB 연결은 코드의 여러 위치에서 공유할 수 있습니다.
SQL 문장을 실행하려면 데이터베이스 연결이 이루어지면 CDbCommand를 사용하여 SQL 문장을 실행할 수 있습니다.CDbConnection::createCommand () 를 호출해서 CDbCommand 실례를 만들 수 있습니다. 파라미터는 SQL 문장입니다: 1$command=$connection->createCommand ($sql).2//필요하면 SQL 문장은 다음과 같이 업데이트할 수 있습니다. 3//$command->text=$newSQL;CDbCommand를 통해 다음과 같은 두 가지 방법으로 SQL 문이 실행됩니다.
    1. execute():          SQL   ,    INSERT, UPDATE   DELETE.      ,          .
    2.query():             SQL   ,    SELECT.    ,      CDbDataReader   .     ,    queryXXX()                 .

CDbCommand::query () 에서 CDbDataReader 실례를 생성한 후, CDbDataReader::read () 를 반복해서 호출해서 결과 집합의 기록을 얻을 수 있습니다.또한 PHP의foreach 언어 구조에서 CDbDataReader를 사용하여 기록을 한 줄씩 검색할 수 있습니다.1 $dataReader=$command->query(); 2//calling read() repeatedly until it returns false 3 while(($row=$dataReader->read())!==false) { … } 4//using foreach to traverse through every row of data 5 foreach($dataReader as $row) { … } 6//retrieving all rows at once in a single array 7 $rows=$dataReader->readAll();

좋은 웹페이지 즐겨찾기