2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PHPでmySQLへ接続する

Last updated at Posted at 2019-03-31

2019/4/1 参考記事を間違ってたので修正。


PHPでmySQLを操作するところが理解できなかったのでまとめてみました。
正直、ちゃんと理屈をまとめられるほど理解できてないので **どうすりゃできるんだよ!**ってところだけメモ。
まぁ、1.DBへ接続する、 2.クエリを作って実行する、 3.戻り値を取得する ってだけです。

#DBへの接続情報
インスタンスを生成する際、引数で接続先情報を渡します。

$dbh = new PDO('mysql:host=$hostname;dbname=$dbname', $user, $pass);

$hostname:接続先のホスト名
$dbname:接続先のデータベース名
$user:ユーザ名
$pass:パスワード

#SQL文を実行
実行には2種類の方法があります。
queryメソッド
1回きりの処理ならこちらの方が楽です。
ただSQLが長いと読みづらいかな…。

$dbh->query($SQL);

$SQL:クエリを記述

prepareメソッド
繰り返し利用することを前提に変数をバインドしたりします。
prepareで準備して、executeで実行します。
queryと違ってexecuteしないと実行されない。

<?php
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':value', $value);

// 行を挿入します
$name = 'one';
$value = 1;
$stmt->execute();

// パラメータを変更し、別の行を挿入します
$name = 'two';
$value = 2;
$stmt->execute();
?>

#出力
結果を出力する方法を指定して、戻り値を取得します。
まず複数の戻り値があると思うので、例ではwhileで全部取得してます。

while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
      $results[] = $row;
}

#感想
はじめての投稿ですが、こんな薄っぺらい内容にすごく時間かかった…。
でも調べながら記事書いてると、自分が分からないことが分かるのでようやくなんとなく理解できました。
またローカルで動作確認して疑問とか間違いあれば修正しよう。
しかしアウトプットって本当に大切…。


参考サイト
@7968
 【PHP超入門】クラス~例外処理~PDOの基礎
@mitsuru793
 PDOを使ったPHPでのデータベース基本操作
公式ドキュメント(PHP Data Objects ¶)

2
1
2

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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?