- 更新日: 2017年04月05日
- 公開日: 2015年12月08日
ゼロから始めるPHP講座Vol29 PHPによるDB操作〜応用〜
ゼロから始めるPHP講座 PHPによるDB操作〜応用〜
INSERT・UPDATE・DELETE
データの追加・更新・削除も同じようにプログラムで行うことができます。
まずはお手本にある通り、プログラムを書いてみましょう。 ファイル名:mysql_change.php
<pre>
<!--?php
$host = 'localhost'; // データベースのホスト名又はIPアドレス
$username = 'username'; // MySQLのユーザ名
$passwd = 'passwd'; // MySQLのパスワード
$dbname = 'dbname'; // データベース名
$link = mysqli_connect($host, $username, $passwd, $dbname);
// 接続成功した場合
if ($link) {
// 文字化け防止
mysqli_set_charset($link, 'utf8');
$query = 'INSERT INTO goods_table(goods_name, price) VALUES(\'ボールペン\', 80)';
// クエリを実行します
if (mysqli_query($link, $query) === TRUE) {
print '成功';
} else {
print '失敗';
}
// 接続を閉じます
mysqli_close($link);
// 接続失敗した場合
} else {
print 'DB接続失敗';
}
?-->
</pre>
成功すると左図のように「成功」と表示され、phpMyAdminからgoods_tableの全レコードをSELECTすると、1行追加されていることが確認できます。
$query = 'INSERT INTO goods_table(goods_name, price) VALUES(\'ボールペン\', 80)';
// クエリを実行します
if (mysqli_query($link, $query) === TRUE) {
print '成功';
} else {
print '失敗';
}
mysqli_query()の紹介をした際、SELECTの場合の返り値は「結果セット」で、INSERTやUPDATE、DELETEの場合は「TRUE」と説明しました。
mysql_change.phpはINSERT文を実行しているので、成功した場合はTRUE、失敗した場合はFALSEが返ってきます。
またSELECT文と異なり結果セットがありませんので、結果の取得やメモリ開放といった処理は必要ありません。
UPDATEやDELETEについて、mysql_change.phpの17行目を以下のように変更した後、URLへアクセスして実行し、phpMyAdminから結果を確認してみましょう。
goods_tableのgoods_idが6のpriceを60に更新(ボールペンの価格を60に変更)
$query = 'UPDATE goods_table SET price = 60 WHERE goods_id = 6';
// クエリを実行します
if (mysqli_query($link, $query) === TRUE) {
print '成功';
} else {
print '失敗';
}
goods_tableのgoods_idが6のレコードを削除(ボールペンのデータを削除)
$query = 'DELETE FROM goods_table WHERE goods_id = 6';
// クエリを実行します
if (mysqli_query($link, $query) === TRUE) {
print '成功';
} else {
print '失敗';
}
このように、INSERT、UPDATE、DELETEの基本的なプログラムの流れは同一となります。
課題1
emp_tableのデータを表示するプログラムを作成してください。表示するデータは、セレクトボックスで「job」を条件に絞込検索が行えるようにしてください。 ファイル名: challenge_mysql_select.php
全員を選択 → emp_tableの全レコードを表示 マネージャーを選択 → jobがmanagerのレコードのみ表示
画像だけで完成イメージが思い浮かばい場合、以下サンプルを参照してください。 参照: challenge_mysql_select.php
課題2
goods_tableに新しい商品データの追加が行えるプログラムを作成してください。追加をした際には、成功したか失敗したか分かるメッセージを表示してください。またページ下部に現在goods_tableにある全データを一覧で表示してください。 ファイル名: challenge_mysql_insert.php priceカラムのデータ型はINTのため、価格に数値以外を入力して追加した場合、追加失敗します
NEXT LESSON ☛ 正規表現とは
PREV LESSON ☛ DB操作の使用例
- この記事を書いた人
- CodeCampus編集部