2018年08月01日
Docker for Mac を使って WordPress の...
2018年07月29日
Docker for Mac のインストール
2018年07月08日
Docker 便利コマンドあれこれ
2018年07月08日
オライリーの Docker 本(Docker Up &...
2018年07月05日
iPad mini 2 を購入しました
2018年07月04日
Docker で Jenkins するときのあれこれ

HOME > カテゴリ(PHP, データベース)の記事

PHP で PDO を使ってデータベース(MySQL)に接続してみた



データベース接続ができるようになると WEB サイト構築なども随分幅が広がります。ってことで、PDO を使ってデータベース(MySQL)接続にチャレンジしてみました。

PHP からデータベース(MySQL)に接続する方法は色々あるようですが、PDO(PHP Data Objects)という仕組みを使ってデータベースに接続してみました。

参考:PHP: PDO – Manual

PDO は PHP5 以上じゃないと使えないみたい。でも PHP5 以上であれば、別途ライブラリをインストールしたりしなくてもいいから簡単で便利。

PDO のマニュアルには小難しいことが色々と書いてありますが、とりあえずデータベースに接続して SQL が発行できるようにしないと話がはじまらない。

ってことで、なにわともあれデータベース(MySQL)に接続するための DBConnection クラスです。

一応、シングルトン・パターンの実装になってます。

ってか、これ、IBM developerWorks か何かで紹介されていたサンプル(をちょっと修正したもの)。

class DBConnection {
  private $_handle = null;
  private function __construct() {

  try {
    $mysql = "mysql:ホストアドレス; dbname=データベース名";
    $user = "ユーザー名";
    $pass = "パスワード";
    $this->_handle =& new PDO($mysql, $user, $pass);
  } catch(PDOException $e){
    var_dump($e->getMessage());
  }

  public static function get() {
    static $db = null;
    if ( $db == null ) $db = new DBConnection();
    return $db;
  }

  public function handle() {
    return $this->_handle;
  }
}

この DBConnection クラスの使い方は、

$db = DBConnection::get()->handle();

で、PDO オブジェクトが取得できます。

あとは、PDO オブジェクト($db)を使って SELECT 文を発行してみたり、

prepare( $sql );
    $stmt->execute();
    $results = $stmt->fetchAll();
  } catch ( PDOException $e ){
    var_dump($e->getMessage());
  }
  return $results;
?>

INSERT 文を発行してみたり、

prepare($sql);
    $stmt->bindValue(':name', "taro");
    $stmt->bindValue(':age', 18);
    $stmt->execute();
  } catch (PDOException $e){
    var_dump($e->getMessage());
  }
?>

すれば、DB に接続して、データを取得したり、追加したりできます。UPDATE 文や DELETE 文の発行なども基本的には、これらと同じ感じでできます。

参考:PHP: PDO::query – Manual
参考:PHP: PDO::prepare – Manual
参考:PHP: プリペアドステートメントおよびストアドプロシージャ – Manual

データベース接続って聞くと初めはとっつきにくい。めっちゃ面倒くさそうだし。

だけど一度接続して SQL 文の発行に成功すれば、案外、どうってことなかったりします。

多くの人は心理的ハードルが高いと思いますが、やってみたら実はたいしたハードルじゃなかった、かもですよ。

でわでわ。





この記事にコメントする





Copyright © 2012 - 2013 MacBook Air とWordPressでこうなった All rights reserved
Designed by Theme Junkie. Powered by WordPress.