CodeIgniter CRUD
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[CodeIgniter]]
#contents
* CRUD [#q0c22802]
CRUD(クラッド)=「作成(Create)」「読み出し(Read)」...
** 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]
-MySQL SELECT 構文
http://dev.mysql.com/doc/refman/5.1/ja/select.html
>SELECT は、1つまたは複数のテーブルから選択した行を検索す...
>WHERE 条項がもしあれば、それは行が選択される為に満たさな...
where_condition は選択される行が真であるかを確認する式で...
ステートメントは、もし WHERE 条項がなければ全ての行を選択...
>WHERE 条項の中では、総計 (要約) 関数以外の、MySQL がサポ...
#code(sql){{
SELECT
[ALL | DISTINCT | DISTINCTROW ]
[HIGH_PRIORITY]
[STRAIGHT_JOIN]
[SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RES...
[SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
select_expr, ...
[FROM table_references
[WHERE where_condition]
[GROUP BY {col_name | expr | position}
[ASC | DESC], ... [WITH ROLLUP]]
[HAVING where_condition]
[ORDER BY {col_name | expr | position}
[ASC | DESC], ...]
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
[PROCEDURE procedure_name(argument_list)]
[INTO OUTFILE 'file_name' export_options
| INTO DUMPFILE 'file_name'
| INTO @var_name [, @var_name]]
[FOR UPDATE | LOCK IN SHARE MODE]]
}}
-CodeIgniterのモデルクラスの記述例
-- 結果が複数行のレコードの場合
result() または result_array()を使用
#code(php){{
function select_all($arg) {
$this->load->database();
$sql = 'SELECT * FROM `table_name` WHERE `column_name` ...
$param = array($arg);
$query = $this->db->query($sql, $param);
return $query->result_array();
}
}}
-- 結果が一行のレコードの場合
row() または row_array()を使用
#code(php){{
function select_one($arg) {
$this->load->database();
$sql = 'SELECT * FROM `table_name` WHERE `column_name` ...
$param = array($arg);
$query = $this->db->query($sql, $param);
return $query->row_array();
}
}}
http://codeigniter.jp/user_guide_ja/database/results.html
>$query->num_rows()
クエリで返された行数を取得します。
#code(php){{
$query = $this->db->query('SELECT * FROM my_table');
echo $query->num_rows();
}}
** Update [#gb418be0]
-MySQL UPDATE 構文
http://dev.mysql.com/doc/refman/5.1/ja/update.html
>単一テーブル構文には、UPDATE ステートメントは新しい値を...
SET 条項は、どのカラムを変更し、それらにはどの値が与えら...
もし 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]
MySQL DELETE 構文
http://dev.mysql.com/doc/refman/5.1/ja/delete.html
>単一テーブル構文に対しては、DELETE ステートメントが tbl_...
もし WHERE 条項が与えられたら、それはどの行を削除するべき...
WHERE 条項が無ければ、全ての行が削除されます。
もし ORDER BY 条項が指定されると、指定された順に行が削除...
LIMIT 条項は、削除できる行数に制限を設定します。
#code(sql){{
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name
[WHERE where_condition]
[ORDER BY ...]
[LIMIT row_count]
}}
#code(php){{
function delete($arg) {
$this->load->database();
$sql = 'DELETE FROM `table_name` WHERE `column_name` = ...
$param = array($arg);
$this->db->query($sql, $param);
return $this->db->affected_rows();
}
}}
終了行:
[[CodeIgniter]]
#contents
* CRUD [#q0c22802]
CRUD(クラッド)=「作成(Create)」「読み出し(Read)」...
** 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]
-MySQL SELECT 構文
http://dev.mysql.com/doc/refman/5.1/ja/select.html
>SELECT は、1つまたは複数のテーブルから選択した行を検索す...
>WHERE 条項がもしあれば、それは行が選択される為に満たさな...
where_condition は選択される行が真であるかを確認する式で...
ステートメントは、もし WHERE 条項がなければ全ての行を選択...
>WHERE 条項の中では、総計 (要約) 関数以外の、MySQL がサポ...
#code(sql){{
SELECT
[ALL | DISTINCT | DISTINCTROW ]
[HIGH_PRIORITY]
[STRAIGHT_JOIN]
[SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RES...
[SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
select_expr, ...
[FROM table_references
[WHERE where_condition]
[GROUP BY {col_name | expr | position}
[ASC | DESC], ... [WITH ROLLUP]]
[HAVING where_condition]
[ORDER BY {col_name | expr | position}
[ASC | DESC], ...]
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
[PROCEDURE procedure_name(argument_list)]
[INTO OUTFILE 'file_name' export_options
| INTO DUMPFILE 'file_name'
| INTO @var_name [, @var_name]]
[FOR UPDATE | LOCK IN SHARE MODE]]
}}
-CodeIgniterのモデルクラスの記述例
-- 結果が複数行のレコードの場合
result() または result_array()を使用
#code(php){{
function select_all($arg) {
$this->load->database();
$sql = 'SELECT * FROM `table_name` WHERE `column_name` ...
$param = array($arg);
$query = $this->db->query($sql, $param);
return $query->result_array();
}
}}
-- 結果が一行のレコードの場合
row() または row_array()を使用
#code(php){{
function select_one($arg) {
$this->load->database();
$sql = 'SELECT * FROM `table_name` WHERE `column_name` ...
$param = array($arg);
$query = $this->db->query($sql, $param);
return $query->row_array();
}
}}
http://codeigniter.jp/user_guide_ja/database/results.html
>$query->num_rows()
クエリで返された行数を取得します。
#code(php){{
$query = $this->db->query('SELECT * FROM my_table');
echo $query->num_rows();
}}
** Update [#gb418be0]
-MySQL UPDATE 構文
http://dev.mysql.com/doc/refman/5.1/ja/update.html
>単一テーブル構文には、UPDATE ステートメントは新しい値を...
SET 条項は、どのカラムを変更し、それらにはどの値が与えら...
もし 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]
MySQL DELETE 構文
http://dev.mysql.com/doc/refman/5.1/ja/delete.html
>単一テーブル構文に対しては、DELETE ステートメントが tbl_...
もし WHERE 条項が与えられたら、それはどの行を削除するべき...
WHERE 条項が無ければ、全ての行が削除されます。
もし ORDER BY 条項が指定されると、指定された順に行が削除...
LIMIT 条項は、削除できる行数に制限を設定します。
#code(sql){{
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name
[WHERE where_condition]
[ORDER BY ...]
[LIMIT row_count]
}}
#code(php){{
function delete($arg) {
$this->load->database();
$sql = 'DELETE FROM `table_name` WHERE `column_name` = ...
$param = array($arg);
$this->db->query($sql, $param);
return $this->db->affected_rows();
}
}}
ページ名: