Changes between Version 5 and Version 6 of Ticket #555
- Timestamp:
- 2009/12/02 17:15:40 (11 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Ticket #555 – Description
v5 v6 11 11 12 12 DB に INSERT するのはこんな感じ. 13 プライマリーキーが一致するデータが存在する場合は UPDATE になります. 13 14 14 15 {{{ … … 23 24 }}} 24 25 25 DB からデータを取得する場合 26 DB からデータを取得する場合. 26 27 27 28 {{{ … … 31 32 }}} 32 33 33 複数のレコードを取得する場合は, キーを配列で渡す. 34 複数のレコードを取得する場合. limit, offset は, 引数で指定 35 36 {{{ 37 $pm = getPersistenceManager(); 38 // dtb_client の column1 が expression に一致するデータを取得する 39 $client = $pm->getObjectsById(new Client(), array("column1" => "expression")); 40 }}} 41 42 34 43 $clients には, dtb_client の連想配列が入る. 35 44 … … 41 50 // email が nanasess を含むものを検索する. %value% のみのサポート 42 51 $clients = $pm->getObjectsById(new Client(), array("email__like" => "nanasess")); 52 }}} 53 54 データを削除する場合 55 56 {{{ 57 $pm = getPersistenceManager(); 58 // $client のプライマリーキーに一致するデータを削除する 59 $pm->deletePersistent($client); 60 }}} 61 62 SQL直書きにも対応 63 64 {{{ 65 $pm = getPersistenceManager(); 66 $client = $pm->getObjectsBySql(new Client(), "SELECT * FROM dtb_client WHERE client_id = ?", array(1)); 67 }}} 68 69 更新系のクエリは, executeBySql() を使用 70 71 {{{ 72 $pm = getPersistenceManager(); 73 $pm->executeBySql("UPDATE dtb_client SET name = ? WHERE client_id = ?", array('hogehoge', 1)); 74 }}} 75 76 トランザクションは, Transaction クラスを使用 77 78 {{{ 79 $pm = getPersistenceManager(); 80 $tx = $pm->currentTransaction(); 81 $tx->begin(); 82 83 ... snip 84 85 $tx->commit(); 86 }}} 87 88 シーケンスは, Sequence クラスを使用 89 90 {{{ 91 $pm = getPersistenceManager(); 92 $sequence = $pm->getSequence('dtb_client_client_id_seq'); 93 $client->client_id = $sequence->nextValue(); 94 $pm->makePersistent($client); 43 95 }}} 44 96