Doctrineで以下のテーブルがあったとする.
この場合,自動的にidというフィールドが追加され,作られるテーブルは以下の通りになる(MySQL使用時).
BlogPost:
columns:
title:
type: string(255)
body:
type: string()
ここで,IDを指定して1レコードだけ引っ張ってくる方法にはいくつかある.
mysql> show fields from blog_post;
+-------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+----------------+
| id | bigint(20) | NO | PRI | NULL | auto_increment |
| title | varchar(255) | YES | | NULL | |
| body | text | YES | | NULL | |
+-------+--------------+------+-----+---------+----------------+
$q = Doctrine_Query::create()
->from('BlogPost bp')
->where('bp.id = ?', $id);
$records = $q->execute();
if(count($records) > 0){
$record = $records[0];
}
$q = Doctrine_Query::create()
->from('BlogPost bp')
->where('bp.id = ?', $id);
$record = $q->fetchOne();
$record = Doctrine::getTable('BlogPost')->find($id);
最初の方法ではlimit文が付かないので,その分遅くなる.後の二つは発行されるSQLも同じ.
最後の方法は非常に手軽なので,覚えておくと楽.
0 件のコメント:
コメントを投稿