[[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]