MySQL Native Driverに換えました

It's only fair to share...Tweet about this on Twitter
Twitter
Share on Facebook
Facebook
Share on LinkedIn
Linkedin
Share on Reddit
Reddit
Email this to someone
email

前は気づいてないけど、今週の金曜にプログラミングしてた時、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 – ユーザーハンドラープラグイン

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

コメントを残す

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