はじめに
基本的なデータベース操作(select, insert ,delete)についてまとめました。データベース接続
PHPからデータベース(MySQL)を操作するために、まずデータベースに対して接続を確立させます。db.php
$usr = 'user'; // 接続ユーザー名
$pw = 'password'; // 接続時のパスワード
$dsn = 'mysql:host=localhost; dbname=test; charset=utf8';
$pdo = new PDO($dsn, $usr, $pw);
①$dsnはデータベース接続文字列で、データベースに接続するための情報(ホスト名やデータベース名など)をまとめたものです。
※接続先のデータベースによって異なるので注意。今回はMySQL
②PDOクラスをインスタンス化します。
SELECT
データベース接続ができたら、テーブルからデータを取得していきます。今回取得元のテーブルはこんな感じ
id | nam | age | password |
---|---|---|---|
1 | 江戸川コナン | 7 | baro |
2 | 西条大河 | 35 | yoshitsune |
3 | 山倉多恵 | 52 | ookini |
4 | 綾小路文麿 | 28 | ojaru |
memberテーブルからidが「1」の行を取得するには
db.php
$spl = $pdo -> prepare('select * from member where id = 1');
$spl->execute();
①$pdo->prepare(~)
発行したいSQL命令文を指定します。
②select * from member where id = 1
memberテーブルの「id = 1」でマッチする行を取得します。
③$spl->execute();
executeメソッドによってデータベースに命令が送信/実行されます。
下記で取得結果を出力します。
db.php
$row = $spl -> fetch(PDO::FETCH_ASSOC);
print_r($row);
// 出力結果:Array ([id] => 1, [nam] => 江戸川コナン, [age] => 7, [pw] => 7)
INSERT
テーブルに新しく行を追加する場合はinsert文を使用します。dp.php
$sql = $pdo -> ('insert into member (nam, age, passowrd) values(?,?,?)');
$sql -> bindValue(1, '竜円');
$sql -> bindValue(2, '34');
$sql -> bindValue(3, 'tera');
$spl->execute();
insert文のvalues(?,?,?)
の箇所はプレイスホルダーを表し、bindValue
でプレイスホルダーに値を設定してから実行しています。
結果は以下のように一番下の行に新しく追加されます。
id | nam | age | password |
---|---|---|---|
1 | 江戸川コナン | 7 | baro |
2 | 西条大河 | 35 | yoshitsune |
3 | 山倉多恵 | 52 | ookini |
4 | 綾小路文麿 | 28 | ojaru |
5 | 竜円 | 34 | tera |
DELETE
テーブルから特定の行ごと削除する場合はdelete文を使用します。以下はidが「2」の行を削除
db.php
$sql = $pdo -> prepare('delete from member where id = ?');
$sql -> bindValue(1, '2');
$sql -> execute();
これで「id=2」でマッチする行を削除することができます。
id | nam | age | password |
---|---|---|---|
1 | 江戸川コナン | 7 | baro |
3 | 山倉多恵 | 52 | ookini |
4 | 綾小路文麿 | 28 | ojaru |
5 | 竜円 | 34 | tera |