Codeigniter4でMySQLに接続しCRUD操作する方法
2024/01/06
Codeigniter4.4.4でMySQLに接続しCRUD操作したい。また、任意のSQL文を発行したい時もあると思うのでその操作方法もあわせてメモ。
目次
リファレンス
https://ci-trans-jp.gitlab.io/user_guide_4_jp/database/index.html
MySQL設定
過去記事を参考の上でMySQL設定を行っておく。
サンプルテーブルの作成
今回は例として以下のようなテーブルを作成した。
mysql> SHOW COLUMNS FROM sample_table; +------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------+--------------+------+-----+---------+----------------+ | id | int | NO | PRI | NULL | auto_increment | | name | varchar(255) | NO | | NULL | | | age | int | NO | | NULL | | | update_ymd | datetime | NO | | NULL | | | regist_ymd | datetime | NO | | NULL | | +------------+--------------+------+-----+---------+----------------+
MySQLの操作
データベース接続及びテーブルの指定
//データベースへの接続
$db = \Config\Database::connect();
//テーブル指定
$builder = $db->table('sample_table');
データの挿入
$now = date('Y-m-d H:i:s');
$data = [
'name' => '山田太郎',
'age' => '20',
'update_ymd' => $now,
'regist_ymd' => $now,
];
$builder->insert($data);
データの読み込み
$query = $builder->get();
foreach ($query->getResult() as $row){
var_dump($row);
}
limit指定やWhere検索したいような場合はこちらのリファレンスを参照する。
データの更新
$now = date('Y-m-d H:i:s');
$data = [
'name' => '山田太郎編集',
'age' => '30',
'update_ymd' => $now,
];
$builder->update($data, ['id' => 1]);
データの削除
$builder->delete(['id' => 1]);
任意のSQL文の発行
$sql = '
INSERT INTO sample_table
(
`name`,
`age`,
`update_ymd`,
`regist_ymd`
)
VALUES
(
' . $db->escape($data['name']) . ',
' . $db->escape($data['age']) . ',
' . $db->escape($data['update_ymd']) . ',
' . $db->escape($data['regist_ymd']) . '
)
';
$query = $db->query($sql);
所感
実運用にあたって
データの挿入・更新は特殊なSQL文を発行するケースは少ないのでクエリビルダクラスを使用し、検索時は任意のSQL文を発行する形になりそう。削除は普段行わない(論理削除する)ので特に気にする必要は無し。
ページャーに関して
MySQLのデータ検索時となるとページネーション機能も基本的にはセットになると思う。ページネーション用ライブラリも用意されているので、こちらの記事等を参考に実装したいところ。
関連記事
-
-
CodeIgniterのバージョンの調べ方
CodeIgniterを使っているシステムがあったが、どうも記憶しているディレク ...
-
-
Codeigniter4で独自・外部ライブラリの作成と呼び出し方法
Codeigniter4で独自ライブラリを作成し、コントローラー側で呼び出したい ...
-
-
CodeIgniter4&Bootstrap&jQueryで簡易版お問い合わせページの作成
CodeIgniter4.4.4&Bootstrap&jQuer ...
-
-
CodeIgniter4でコントローラ実行の前後に指定したイベントを実行する方法
CodeIgniter4で特定の条件の場合は指定したページにリダイレクトさせたい ...
-
-
CodeIgniter4で特定のページにアクセスがあった際に301リダイレクトさせる方法
CodeIgniter4で特定のページにアクセスがあった際に301リダイレクトさ ...