ゼロから始めるPHP講座Vol29 PHPによるDB操作〜応用〜


ゼロから始めるPHP講座Vol29 PHPによるDB操作〜応用〜
目次
  1. INSERT・UPDATE・DELETE
  2. 課題1
  3. 課題2

ゼロから始める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>

PHP-DB2-3-639

成功すると左図のように「成功」と表示され、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のレコードのみ表示 PHP-DB2-4-639

画像だけで完成イメージが思い浮かばい場合、以下サンプルを参照してください。 参照: challenge_mysql_select.php

 

課題2

goods_tableに新しい商品データの追加が行えるプログラムを作成してください。追加をした際には、成功したか失敗したか分かるメッセージを表示してください。またページ下部に現在goods_tableにある全データを一覧で表示してください。 ファイル名: challenge_mysql_insert.php PHP-DB2-5-639 priceカラムのデータ型はINTのため、価格に数値以外を入力して追加した場合、追加失敗します PHP-DB2-6-639

NEXT LESSON ☛ 正規表現とは

PREV LESSON ☛ DB操作の使用例


CodeCampus編集部
この記事を書いた人
CodeCampus編集部
まずは7日間お試し!人気プログラミング講座を無料公開中
オンライン・プログラミングレッスンNo.1のCodeCamp