【PHP】MySQLとの接続(select,insert,update,delete)
こんばんは。
昨日あたりからPHPの勉強を始めたので、
備忘録としてまとめます。
今回は、PHPでMySQLにアクセスする処理を実装しました。
MySQLの主要な機能のSELECT,INSERT,UPDATE,DELETEそれぞれをブラウザで実行できるようになってます。
#サーブレットでMySQLにアクセスしたりしたことあるんですが、
#PHPだとこんなに簡単なんですね( ̄△ ̄;)
前提条件
php、apache、MySQLがインストール済みで動作保証されている。
phpでmysqliがつかるようになっている。
#これらはググれば出てくるので割愛します。
※ソース内のDBのパスワード、データベース名等、実行時の変数は動作環境に合わせてください。
SELECT
// 実行例 http://localhost/mysql_delete.php?table=tablename&tcol=id&tval=5
<?php $host = 'localhost';//ホスト名 $user_name = 'root'; //ユーザー名 $user_password = 'password'; //パスワード $database_name = 'dbname'; //データベース名 $table_name = $_GET['table']; // テーブル名 $target_col = $_GET['tcol']; // 対象のカラム $target_val = $_GET['tval']; // 対象のカラムの値 $mysqli = new mysqli($host, $user_name, $user_password); if ($mysqli->connect_errno) { print('<p>データベースへの接続に失敗しました。</p>' . $mysqli->connect_error); exit(); } $mysqli->select_db($database_name); $mysqli->set_charset("utf-8"); $query="SELECT * FROM ".$table_name." WHERE ".$target_col." = ".$target_val; $result = $mysqli->query($query); if (!$result) { print('クエリーが失敗しました。' . $mysqli->error); $mysqli->close(); exit(); } // レコードの取り出し while ($row = $result->fetch_assoc()) { $userData[]=$row; // echo json_encode($row); } header('Content-type: application/json'); if($result->num_rows > 0){ echo json_encode($userData); }else{ echo "null"; } // 結果セットのクローズ $result->free(); $mysqli->close(); ?>
INSERT
// 実行例 http://localhost/mysql_insert.php?table=tablename&vals=(5,'sample',4)
<?php $host = 'localhost';//ホスト名 $user_name = 'root'; //ユーザー名 $user_password = 'password'; //パスワード $database_name = 'dbname'; //データベース名 $table_name = $_GET['table']; // テーブル名 $insert_vals = $_GET['vals']; // 追加する値 $mysqli = new mysqli($host, $user_name, $user_password); if ($mysqli->connect_errno) { print('<p>データベースへの接続に失敗しました。</p>' . $mysqli->connect_error); exit(); } $mysqli->select_db($database_name); $mysqli->set_charset("utf-8"); $query="INSERT INTO ".$table_name." VALUES".$insert_vals; // 全カラムを指定する必要あり $result = $mysqli->query($query); if (!$result) { print('クエリーが失敗しました。' . $mysqli->error); $mysqli->close(); exit(); }else{ echo "true"; } $mysqli->close(); ?>
UPDATE
// 実行例 http://localhost/mysql_update.php?table=tablename&col=value&val=map&tcol=id&tval=5
<?php $host = 'localhost';//ホスト名 $user_name = 'root'; //ユーザー名 $user_password = 'password'; //パスワード $database_name = 'dbname'; //データベース名 $table_name = $_GET['table']; // テーブル名 $update_col = $_GET['col']; // 代入するカラム $update_val = $_GET['val']; // 代入する値 $target_col = $_GET['tcol']; // 対象のカラム $target_val = $_GET['tval']; // 対象のカラムの値 $mysqli = new mysqli($host, $user_name, $user_password); if ($mysqli->connect_errno) { print('<p>データベースへの接続に失敗しました。</p>' . $mysqli->connect_error); exit(); } $mysqli->select_db($database_name); $mysqli->set_charset("utf-8"); $query="UPDATE ".$table_name." SET ".$update_col." = '".$update_val."' WHERE ".$target_col." = ".$target_val; $result = $mysqli->query($query); if (!$result) { print('クエリーが失敗しました。' . $mysqli->error); $mysqli->close(); exit(); }else{ echo "true"; } $mysqli->close(); ?>
DELETE
// 実行例 http://localhost/mysql_delete.php?table=tablename&tcol=id&tval=5
<?php $host = 'localhost';//ホスト名 $user_name = 'root'; //ユーザー名 $user_password = 'password'; //パスワード $database_name = 'dbname'; //データベース名 $table_name = $_GET['table']; // テーブル名 $target_col = $_GET['tcol']; // 対象のカラム $target_val = $_GET['tval']; // 対象のカラムの値 $mysqli = new mysqli($host, $user_name, $user_password); if ($mysqli->connect_errno) { print('<p>データベースへの接続に失敗しました。</p>' . $mysqli->connect_error); exit(); } $mysqli->select_db($database_name); $mysqli->set_charset("utf-8"); $query="DELETE FROM ".$table_name." WHERE ".$target_col."=".$target_val; $result = $mysqli->query($query); if (!$result) { print('クエリーが失敗しました。' . $mysqli->error); $mysqli->close(); exit(); }else{ echo "true"; } $mysqli->close(); ?>