ここでは PDO - Part1 の学習のまとめとして演習課題に取り組みます。
サンプルデータの準備
ここでは簡単なEラーニングシステムの開発を想定して、以下の2つのテーブルを作成して学習を進めます。
categories
テーブルcourses
テーブル
以前に利用していたテーブルと変わりありません。レコードを再登録して学習しやすいように準備します。
categories
テーブル
categories
テーブルには以下の3件のレコードを作成します。
id | title |
---|---|
1 | Programming |
2 | Design |
3 | Marketing |
categories
テーブルの作成に必要なSQLは以下のとおりです。
drop table if exists categories;
create table categories(
id integer primary key,
title varchar(100)
);
insert into categories (id, title) values (1, 'Programming');
insert into categories (id, title) values (2, 'Design');
insert into categories (id, title) values (3, 'Marketing');
courses
テーブル
courses
テーブルには以下の5件のレコードを作成します。
id | title | learning_time | category_id |
---|---|---|---|
1 | PHP Basic | 30 | 1 |
2 | PHP Database | 50 | 1 |
3 | Python Basic | 40 | 1 |
4 | Web Design | 50 | 2 |
5 | Japan's History | 100 |
courses
テーブルの作成に必要なSQLは以下のとおりです。
drop table if exists courses;
create table courses(
id integer primary key,
title varchar(100),
learning_time integer,
category_id integer
);
insert into courses (id, title, learning_time, category_id) values (1, 'PHP Basic', 30, 1);
insert into courses (id, title, learning_time, category_id) values (2, 'PHP Database', 50, 1);
insert into courses (id, title, learning_time, category_id) values (3, 'Python Basic', 40, 1);
insert into courses (id, title, learning_time, category_id) values (4, 'Web Design', 50, 2);
insert into courses (id, title, learning_time, category_id) values (5, 'Japan''s History', 100, null);
1 レコードの取得
PDO
インスタンスを生成し、以下の select
文を実行して期待値のとおり出力するプログラム( pdo_tr1.php
)を作成します。
select id, title, learning_time from courses
pdo_tr1.php
<?php
$dsn = "mysql:host=localhost;dbname=eldb;charset=utf8mb4";
$username = "root";
$password = "admin";
$pdo = new PDO($dsn, $username, $password);
// TODO
Terminal
$ php pdo_tr1.php
1,PHP Basic,30
2,PHP Database,50
3,Python Basic,40
4,Web Design,50
5,Japan's History,100
2 レコードの作成
PDO
インスタンスを生成し、以下の insert
文を実行して期待値のとおり出力するプログラム( pdo_tr2.php
)を作成します。
insert into courses (id, title, learning_time, category_id) values (6, 'PHP Framework', 50, 1)
pdo_tr2.php
<?php
$dsn = "mysql:host=localhost;dbname=eldb;charset=utf8mb4";
$username = "root";
$password = "admin";
$pdo = new PDO($dsn, $username, $password);
// TODO
Terminal
$ php pdo_tr2.php
Count: 1
画面には更新件数(登録件数)を表示しています。
3 レコードの更新
PDO
インスタンスを生成し、以下の update
文を実行して期待値のとおり出力するプログラム( pdo_tr3.php
)を作成します。
update courses set title = 'Laravel', learning_time = 60 where id = 6
pdo_tr3.php
<?php
$dsn = "mysql:host=localhost;dbname=eldb;charset=utf8mb4";
$username = "root";
$password = "admin";
$pdo = new PDO($dsn, $username, $password);
// TODO
Terminal
$ php pdo_tr3.php
Count: 1
画面には更新件数を表示しています。
4 レコードの削除
PDO
インスタンスを生成し、以下の delete
文を実行して期待値のとおり出力するプログラム( pdo_tr4.php
)を作成します。
delete from courses where id = 6
pdo_tr4.php
<?php
$dsn = "mysql:host=localhost;dbname=eldb;charset=utf8mb4";
$username = "root";
$password = "admin";
$pdo = new PDO($dsn, $username, $password);
// TODO
Terminal
$ php pdo_tr4.php
Count: 1
画面には更新件数(削除件数)を表示しています。