MySQL Native Driverに換えました

It's only fair to share...Tweet about this on TwitterShare on Google+Share on FacebookShare on TumblrEmail this to someone

前は気づいてないけど、今週の金曜にプログラミングしてた時、PHPは

$result = $stmt->get_result();

に何のエラーもなく突然止まった。一応try-catchも試したけど、それは何のアウトプットも全然出てこなかった。

というわけで色々調べたら、このget_result()ってmysqliの関数だけど、利用するにはmysqlndというドライバーが必要です。ちょっと興味あるのでもっと調べたら、何とこのmysqlndはPHP 5.4からPHPのおすすめのMySQLドライバーとして、既定のコンパイル選択肢になった。それにlibmysqlclentよりいろんなメリットがあるので、MySQL自身もMySQL Native Driverをお勧めている→https://dev.mysql.com/downloads/connector/php-mysqlnd/

それでどうやってMySQL Native Driverに換えられますか?それはPHPをコンパイルするときに

./configure --with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
[other options]

という引数を使えばいい
Ubuntuならなお簡単になる、

sudo apt-get remove php5-mysql;
sudo apt-get install php5-mysqlnd;

この2つのコマンドで高速的にmysqlndに換えられる。

また、MySQL Native Driverにはプラグインがいっぱいある。

PECL/mysqlnd_mc – 複数接続ができるプラグイン
PECL/mysqlnd_ms – マスタースレーブ構成用のプラグイン
PECL/mysqlnd_qc – クエリキャッシュプラグイン
PECL/mysqlnd_pscache – プリペアドステートメントハンドルをキャッシュするプラグイン
PECL/mysqlnd_sip – SQLインジェクションから防御するためのプラグイン
PECL/mysqlnd_uh – ユーザーハンドラープラグイン

これらは全部役に立ちそうと見えるんでしょうね。いつ時間があればぜひちゃんと勉強します。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です