PHPからデータベースを操作(mysqli_xxx関数を使用した場合)
(ブログ記事の一覧は「こちら」)
PHPからSQLを実行してデータベースにアクセスする方法について、本編ではPDOクラスを使用しました。ここでは、mysqli_xxx関数を使用した場合のプログラムを掲載します。
準備
本編で用意したデータベース(db_food)とテーブル(fruits_list)を使用します。まだ作成していない場合は、本編の PHPからデータベースを操作(データの表示、検索)を参考にしてください。
また、PHPプログラム「dbConfig.php」も同じものを使用します。
プログラム
mysqli_xxx関数を使用したデータの抽出、検索、挿入、更新、削除のプログラムを示します。
データの抽出
レコード抽出のPHPプログラム「getFoodName_receive_mysqli.php」を作成して、「food」フォルダに置きます。
<?php require_once('./dbConfig.php'); // 接続 $link = mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME); if ($link == null) { die("接続に失敗しました"); } mysqli_set_charset($link, "utf8"); // レコード抽出 $sql = "SELECT * FROM fruits_list"; $result = mysqli_query($link, $sql); echo "<ul>"; foreach ($result as $row) { echo "<li>" . $row['name'] . "</li>"; } echo "</ul>"; mysqli_free_result($result); mysqli_close($link); ?>
実行、確認
以下を実行すると、テーブル内のレコード一覧が表示されます。
http://localhost/sample/food/getFoodName_receive_mysqli.php
データの検索
レコード検索のPHPプログラム「searchFoodName_receive_mysqli.php」を作成して、「food」フォルダに置きます。
<?php require_once('./dbConfig.php'); $name = $_GET['name']; if (empty($name) == true) { die("'name'の設定なし"); } // 接続 $link = mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME); if ($link == null) { die("接続に失敗しました"); } mysqli_set_charset($link, "utf8"); // レコード検索 $sql = "SELECT * FROM fruits_list WHERE name=?"; $stmt = mysqli_prepare($link, $sql); mysqli_stmt_bind_param($stmt, "s", $name); mysqli_stmt_execute($stmt); $result = mysqli_stmt_get_result($stmt); // 検索結果を取得 mysqli_stmt_close($stmt); echo "<ul>"; foreach ($result as $row) { echo "<li>" . $row['name'] . "</li>"; } echo "</ul>"; mysqli_free_result($result); mysqli_close($link); ?>
実行、確認
以下を実行すると、指定したキーワードを含むレコード一覧が表示されます。
http://localhost/sample/food/searchFoodName_receive_mysqli.php?name=メロン
データの挿入
レコード追加のPHPプログラム「insertFood_receive_mysqli.php」を作成して、「food」フォルダに置きます。
<?php require_once('./dbConfig.php'); $name = $_GET['name']; if (empty($name) == true) { die("'name'の設定なし"); } $price = $_GET['price']; if (empty($price) == true) { die("'price'の設定なし"); } // 接続 $link = mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME); if ($link == null) { die("接続に失敗しました"); } mysqli_set_charset($link, "utf8"); // レコード追加 $sql = "INSERT INTO fruits_list (id, name, price) VALUES (?, ?, ?)"; if ($stmt = mysqli_prepare($link, $sql)) { mysqli_stmt_bind_param($stmt, "isi", $id, $name, $price); mysqli_stmt_execute($stmt); mysqli_stmt_close($stmt); } mysqli_close($link); echo $name . "を" . $price . "円で追加しました。"; ?>
実行、確認
以下を実行すると、レコード「メロン 1000円」が追加されます。
http://localhost/sample/food/insertFood_receive_mysqli.php?name=メロン&price=1000
データの更新
レコード追加のPHPプログラム「updateFoodPrice_receive_mysqli.php」を作成して、「food」フォルダに置きます。
<?php require_once('./dbConfig.php'); $name = $_GET['name']; if (empty($name) == true) { die("'name'の設定なし"); } $price = $_GET['price']; if (empty($price) == true) { die("'price'の設定なし"); } // 接続 $link = mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME); if ($link == null) { die("接続に失敗しました:" . mysqli_connect_error()); } mysqli_set_charset($link, "utf8"); // レコード更新 $sql = "UPDATE fruits_list SET price = ? WHERE name = ?"; if ($stmt = mysqli_prepare($link, $sql)) { mysqli_stmt_bind_param($stmt, "is", $price, $name); mysqli_stmt_execute($stmt); mysqli_stmt_close($stmt); } mysqli_close($link); echo $name . "を" . $price . "円に変更しました。"; ?>
実行、確認
以下を実行すると、レコード「みかん」が「180円」に更新されます。
http://localhost/sample/food/updateFoodPrice_receive_mysqli.php?name=みかん&price=180
データの削除
レコード削除のPHPプログラム「deleteFood_receive_mysqli.php」を作成して、「food」フォルダに置きます。
<?php require_once('./dbConfig.php'); $name = $_GET['name']; if (empty($name) == true) { die("'name'の設定なし"); } // 接続 $link = mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME); if ($link == null) { die("接続に失敗しました:" . mysqli_connect_error()); } mysqli_set_charset($link, "utf8"); // レコード削除 $sql = "DELETE FROM fruits_list WHERE name = ?"; if ($stmt = mysqli_prepare($link, $sql)) { mysqli_stmt_bind_param($stmt, "s", $name); mysqli_stmt_execute($stmt); mysqli_stmt_close($stmt); } mysqli_close($link); echo $name . "を削除しました。"; ?>
実行、確認
以下を実行すると、レコード「みかん」が削除されます。
http://localhost/sample/food/deleteFood_receive_mysqli.php?name=みかん