LoginSignup
0
1

More than 3 years have passed since last update.

PHPでMySQLのデータ操作その1

Last updated at Posted at 2020-07-01

PHPでMySQLのデータ操作その1

PHPでMySQLを操作する方法を備忘録も兼ねてまとめました。
まずこのようなデータを作成、用意します。
架空のフットサルチームがあるとします。

id name age position
選手id 選手名 選手の年齢 選手のポジション
-- futsal_teamというデータベース(がなければ)作成。IF NOT EXISTSで判断。
CREATE DATABASE IF NOT EXISTS futsal_team DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
-- GRANT文で権限をユーザーに付与、ユーザーはfutsal_team内の全てのテーブルを操作できる。
GRANT ALL PRIVILEGES ON *.* TO 'bs_user'@'localhost' IDENTIFIED BY 'futsal_team';
FLUSH PRIVILEGES;
-- データベースfutsal_team使用。
USE futsal_team;
-- テーブル作成後、カラム設定。
CREATE TABLE futsal_a (
id integer AUTO_INCREMENT NOT NULL,
name varchar(255) NOT NULL,
age integer NOT NULL,
position varchar(255) NOT NULL,
PRIMARY KEY (id)
);
-- カラムにそれぞれ値を入れてレコードを作成。idはシーケンス番号がauto_incrementオプションの効果で自動で追加される。
INSERT INTO futsal_a VALUES (null, '加藤A太郎', 25, 'ピヴォ');
INSERT INTO futsal_a VALUES (null, '佐藤B次郎', 27, 'アラ');
INSERT INTO futsal_a VALUES (null, '田中C三郎', 32, 'アラ');
INSERT INTO futsal_a VALUES (null, '山本D五郎', 38, 'フィクソ');
INSERT INTO futsal_a VALUES (null, '中島E十郎', 30, 'ゴレイロ);

データの一覧表示

<?php require './header.php'?>
<?php
//今回は外部で$user, $passwordを設定してrequireで呼び出している。
require './ft_person.php';
//例外処理のためにtry carch文使用。
try {

  echo '<h1>','Aチームメンバー','</h1>';
  echo '<table>';
    echo '<tbody>';
    //データベースにアクセスするためにPDOクラスのインスタンスをnew演算子で作成する。
    $ft_team=new PDO('mysql:host=localhost;dbname=futsal_team;charset=utf8',
                $user, $password);
      /*
        PDOクラスのインスタンスからqueryセレクタを使用し、SQL文でfutsal_aの全データ取得。
        その後、foreach文とecho文を用いてデータを全て表示。
      */
      foreach ($ft_team->query('SELECT * FROM futsal_a') as $person) {
        echo '<tr>';
          echo '<td>','番号:',$person['id'],'、','</td>';
          echo '<td>','名前:',$person['name'],'、','</td>';
          echo '<td>','年齢:',$person['age'],'歳','、','</td>';
          echo '<td>','ポジション:',$person['position'],'</td>';
        echo '</tr>';
      }
    echo '</tbody>';
  echo '</table>';

} catch(PDOException $e){

  echo $e->getMessage();
  exit;

}
//結果
/*
番号:1、 名前:加藤A太郎、 年齢:25歳、 ポジション:ピヴォ
番号:2、 名前:佐藤B次郎、 年齢:27歳、 ポジション:アラ
番号:3、 名前:田中C三郎、 年齢:32歳、 ポジション:アラ
番号:4、 名前:山本D五郎、 年齢:38歳、 ポジション:フィクソ
番号:5、 名前:中島E十郎、 年齢:30歳、 ポジション:ゴレイロ
*/
?>
<?php require './footer.php'?>

PDOというクラスをインスタンス化することで、PHPでデータベースに接続しSQL文で操作ができるようになります。
さらには専用のメソッドを使用することで、検索機能など使えるようになります。
その2に続く

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1