忍者ブログ
勉強用に使いたいと思います。三日坊主の可能性大
[19]  [18]  [17]  [16]  [15]  [14]  [13]  [12]  [11]  [10]  [9
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

DoctrineとMySQLの対応表が昔のSymfony Tutorialにあったようなのでパクッってきました。元はこちら
http://www.symfony-project.org/doctrine/1_2/ja/06-Working-With-Data

共通のAPI

関数名 SQL append 説明
where('u.username = ?', 'jwage') u.username = ? No WHEREを設定して既存のWHERE<条件をオーバーライドする
andWhere('u.username = ?', 'jwage') AND u.username = ? Yes ANDでappendされるWHERE条件を追加する
whereIn('u.id', array(1, 2, 3)) AND u.id IN (?, ?, ?) Yes appendされるAND IN WHERE 条件を追加する
andWhereIn('u.id', array(1, 2, 3)) ^ Yes whereIn()用のコンビニエンス/プロキシメソッド
orWhereIn('u.id', array(1, 2, 3)) OR u.id IN (?, ?, ?) Yes appendされるOR IN WHERE条件を追加する
whereNotIn('u.id', array(1, 2, 3)) AND u.id NOT IN (?, ?, ?) Yes appendされるAND NOT IN WHERE条件を追加する
andWhereNotIn('u.id', array(1, 2, 3)) ^ Yes whereNotIn()用のコンビニエンス/プロキシメソッド
orWhereNotIn('u.id', array(1, 2, 3)) OR u.id NOT IN (?, ?, ?) Yes appendされるOR NOT IN WHEREの条件を追加する
orWhere('u.username = ?', 'jwage') OR u.username = ? Yes OR、WHERE条件を追加する
groupBy('u.id') GROUP BY u.id, u.username No GROUP BYを設定して既存のGROUP BYをオーバーライドする
addGroupBy('u.username') GROUP BY u.username Yes appendされるGROUP BYを追加する that is appended
having('num_phonenumbers > 0') HAVING num_phonenumbers > 0 No HAVINGを設定して既存のHAVINGをオーバーライドする
addHaving('u.username = ?', 'jwage') HAVING u.username = ? Yes 追加されるHAVINGを追加する

選択のAPI

関数名 説明
distinct($flag = true) フラグをdistinct selectに設定する
select('u.id, u.username, COUNT(p.id) as num_phonenumbers') SELECTを設定して既存のSELECTをオーバーライドする
addSelect('u.email_address') appendされるselectを追加する
from('User u, u.Phonenumber p') FROMを設定して既存のFROMとjoinをオーバーライドする
leftJoin('u.Phonenumber p') FROMにappendされるLEFT JOINを追加する
innerJoin('u.Profile p') FROMにappendされるINNER JOINを追加する
addFrom('u.Phonenumber p') FROMにappendされるFROM joinを追加する
orderBy('u.username') ORDER BYを設定して既存のORDER BYをオーバーライドする
addOrderBy('u.is_active = ?', 1) appendされるORDER BYを追加する
limit(20) 結果セットを制限するレコードの数を設定する
offset(5) レコードの制限をオフセットする番号を設定する

更新API

関数名 説明
forUpdate($flag = true) FOR UPDATEを使うためにクエリを変更する
update('User u') UPDATEするモデルの名前を指定する
set('u.username', '?', 'jwage') UPDATEクエリのために新しい値を設定する。最初の引数は修正するデータで、2番目はDQLの文字列に直接加える式(もしくはDBMS関数)、で3番目は新しい値。

削除API

関数名 説明
delete() 削除するクエリを変更する


例:
(MySQL)
SELECT i.name FROM item i WHERE i.id=3
↓↑
(Doctrine)
<?php
$table = Doctrine_Query::create()->select('i.name')
    ->from('Item i')
    ->where('i.id = ?', 3)
    ->execute();


又は、Doctrineでwhere句を書かずに
$table = $table -> getId(3);
とかでもいけるかもしれません。(うろ覚え)
PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
Calendar
03 2026/04 05
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
Profile
HN:
ちろ
性別:
非公開
自己紹介:
お先まっ暗な大学生
Search
No good words
http
www.
co.jp
.com
忍者ブログ [PR]