PHP mysqliでMySQLに接続する

  • このエントリーをはてなブックマークに追加
  • Pocket

PHPからMySQLへ接続する方法がいくつかある。

仕事で素のPHPでMySQLにアクセスするという案件があり、いつもフレームワークに頼っていたため最高にめんどくさかった。

せっかくなのでMySQLに接続するクラスを作ってみようとしたときの備忘録。

ドライバを選択

おなじみのmysqlドライバはもはやレガシーらしく、公式でもPDOかmysqliを使えと書いてある。

マニュアルなんか見ないで実装したので後から気が付いた。

将来、削除される可能性が・・・

なんて言われたら不安になる。

そこで、一度mysqlドライバを使って書いたソースをmysqliに書き換えてみる。

といっても、”i”をつければ大抵動く。
一部、引数が異なるらしくそれだけ注意。

素のPHPからの接続は学生時代以来だ。

オレオレドライバ

ファイル構成

  • config.xml
  • db.php
  • hoge.php

流れ的にはconfig.xmlにDBへの接続情報を書いておいて、db.phpの中でxmlを取得してMySQLへ接続。

hoge.phpでdb.phpを呼び出してクエリを投げる感じ。

本当はクエリービルダーのような感じでかっこよくしたいけど、時間がないのでこれで我慢する。

config.xml

なんとなくxmlファイルにしてるけど、PHPファイルでよかったと今更思った。

db.phpでWebサーバの環境変数によって取得する情報を変更できる。

なので今は <dev_db> しかないけど、<[環境変数]_db> を追加すればローカル、テスト、本番でもソースをいじらなくて行ける・・・と思ったけど、それならxmlはソース管理外にして各サーバにそれぞれ配置すれば全く問題ないねw

db.php

hoge.php

このファイルは適当に置き換えてね。

戻り値は配列。

大した内容じゃないけど、素のPHPのまま使うよりはいいはず。

hoge.phpでコネクションをクローズをしてないけど、 $db->execute(); の中でやってるので気にしない。

勝手にクローズするけど、複数のクエリ投げるときも考慮してるのでクラスのインスタンス化は最初の1回で大丈夫。

大抵のフレームワークはクローズを気にしなくてよい作りになってるから、それはまねっこしたかった。  

最後に

良い子のみんなはPDOを使うんだぞ。

  • このエントリーをはてなブックマークに追加
  • Pocket

SNSでもご購読できます。

コメントを残す

*