習志野技術研究所

あれやこれやしたい習志野在住の人間が書いています。他人のマネばかりですが、初心者目線で躓いたところ等まとめたいです。

PHPでデータベース接続とする

環境

OS:Mac

MAMP

DBMSは MySQL (phpMyAdmin)

phpには接続方法が色々あるがPDOを使ってみる。

前提条件

データベースへアクセスするための(phpMyAdminの)パスワードが分かっている。

Macなら/Application/MAMP/bin/phpMyAdmin/config.ini.phpで設定・確認できる。)

Xampと設定が似ているのでこの記事 [Mac]xamppセットアップ-これを読めば思い出す-を参考に。

 用意したテーブル

他の方がエクセルなどで作っているテーブル定義書テーブル定義の出力(Excel, CSV)を参考に、簡単に次の様なものを作成。

f:id:Narashino-tech:20161028150605p:plain

ひとまずパスワードは平文で...。この先で変えていきます...。

PDOとは

PDOとは

PDO(PHP Data Object)とは、PHP標準(5.1.0以降)のデータベース接続クラスのことです。 PHPは標準でMySQLPostgreSQLSQLiteなど、色々なデータベースに接続するための命令が用意されています

これで使い方が見えてきた。

  • PDOはクラスなので、インスタンス化して使う。

  • データベースの接続にはバックグラウンドでかなり難しい処理がされてるけど、PDO使えば簡単にアクセスできるぜ、兄貴。

PDOの使い方は、もう詳しく書かれているサイトが沢山ある。

とりあえず、公式リファレンスから接続、および接続の管理-PHP マニュアル -を見てみます。

マニュアルから、接続に必要なものがわかる。

インスタンスを生成しているコードを読むと f:id:Narashino-tech:20161028150610p:plain

  • host :データベースのドメイン

  • dbname : アクセスするデータベース名

  • $user(変数) :データベースのユーザー名

  • $pass:データベースへ接続するパスワード

を使っているらしい。

PDOでデータベースに接続

以下のようなコードを書いた。

<?php

$host = 'localhost:3306'; //127.0.0.1:[ポート番号]でも良い
$dbname = 'mac_mamp';
$dbuser = 'root';
$dbpassword = 'root';

try{
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8","$dbuser","$dbpassword");
    echo "SUCCESS";
}catch(PDOException $e){
   var_dump($e -> getMessage());
    die();
}

公式リファレンスの二番煎じ。

PDO以外の部分を自分なりにまとめる。

  • try - catch : 例外処理 -> 深刻なエラー(ここではデータベースに接続できない)が生じる場合に実装する。

  • PDOException : PDOのエラー(データベースに接続できなかった)を表す

  • $e : PDOException のメッセージが格納される?

  • $e->getMessage() : $eのメソッドgetMessage()を呼び出す。PDOException のエラー格納場所?

MAMPのhtdocsに上記のphpファイルを置いて接続されるか確認する。 f:id:Narashino-tech:20161028150945p:plain

ok