• 追加された行はこの色です。
  • 削除された行はこの色です。
[[CodeIgniter]]

#contents

* CRUD [#q0c22802]
[[CRUDとは (Create, Read, Update, Delete) クラッド: - IT用語辞典>http://www.sophia-it.com/content/CRUD]]
>CRUDとは、データベース管理システム(DBRS)に必要とされる4つの主要な機能、「作成(Create)」「読み出し(Read)」「更新(Update)」「削除(Delete)」をそれぞれ頭文字で表したもののことである。

** Create [#t9358901]
-MySQL INSERT構文
http://dev.mysql.com/doc/refman/5.1/ja/insert.html
>INSERT  は既存テーブルに新しい行を挿入します。
INSERT ... VALUES と INSERT ... SET  型のステートメントは、明示的に指定された値に基づいて行を挿入します。
INSERT ... SELECT  型は別のテーブルから選択された行を挿入します。
#code(sql){{
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name [(col_name,...)]
    VALUES ({expr | DEFAULT},...),(...),...
    [ ON DUPLICATE KEY UPDATE col_name=expr, ... ]
}}
または:
#code(sql){{
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name
    SET col_name={expr | DEFAULT}, ...
    [ ON DUPLICATE KEY UPDATE col_name=expr, ... ]
}}
または:
#code(sql){{
INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name [(col_name,...)]
    SELECT ...
    [ ON DUPLICATE KEY UPDATE col_name=expr, ... ]
}}

-CodeIgniterのモデルクラスの記述例
#code(php){{
function insert($arg) {
  $this->load->database();
  $sql = 'INSERT IGNORE `table_name` SET
    `column_name1` = ? ,
    `column_name2` = ? ,
    `column_name3` = ?';
  $param = array($arg[1], $arg[2], $arg[3]);
  $this->db->query($sql, $param);
  return $this->db->insert_id();
}
}}

http://codeigniter.jp/user_guide_ja/database/helpers.html
>$this->db->insert_id()
データベースに行を挿入したときに、挿入した ID 番号を取得します。

** Read [#k015b9a4]

** Update [#gb418be0]
-MySQL UPDATE構文
http://dev.mysql.com/doc/refman/5.1/ja/update.html
>単一テーブル構文には、UPDATE ステートメントは新しい値を利用して tbl_name 内に既存行のカラムを更新します。
SET 条項は、どのカラムを変更し、それらにはどの値が与えられるべきかという事を指示します。
もし WHERE 条項が与えられたら、それはどの行を更新するべきかを決定します。WHERE 条項が無ければ、全ての行が更新されます。
もし ORDER BY 条項が指定されると、指定された順に行が更新されます。
LIMIT 条項は、更新できる行数に制限を設定します。
#code(sql){{
UPDATE [LOW_PRIORITY] [IGNORE] tbl_name
    SET col_name1=expr1 [, col_name2=expr2 ...]
    [WHERE where_condition]
    [ORDER BY ...]
    [LIMIT row_count]
}}

-CodeIgniterのモデルクラスの記述例
#code(php){{
function update($arg, $where) {
  $this->load->database();
  $sql = 'UPDATE `table_name` SET
      `column_name1` = ? ,
      `column_name2` = ? ,
      `column_name3` = ?
    WHERE
      `column_name4` = ?';
  $param = array($arg[1], $arg[2], $arg[3], $where);
  $this->db->query($sql, $param);
  return $this->db->affected_rows();
}
}}
ユニークな値なら「UPDATE IGNORE」にする。

http://codeigniter.jp/user_guide_ja/database/helpers.html
>$this->db->affected_rows()
「書き込み」タイプのクエリ (insert、update、など) が実行されたとき、処理された行の数を取得します。

** Delete [#zd1865ad]


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS