どのライブラリを選ぶか

mysqli、PDO_MySQL といった PHP 拡張モジュールは、 どれも C クライアントライブラリの軽量なラッパーです。これらの拡張モジュールは、 mysqlnd ライブラリあるいは libmysqlclient ライブラリのいずれかを使えます。どちらを使うのかを決めるのは、コンパイル時です。

mysqlnd ライブラリは、PHP の一部として配布されています。 遅延接続やクエリのキャッシュなど、libmysqlclient にはない機能も搭載されているので、 この mysqlnd ライブラリを使うことを強くおすすめします。 mysqlnd のドキュメント には、さらなる詳細情報や機能一覧があります。

例1 mysqlnd あるいは libmysqlclient を使う場合の configure コマンド

// おすすめの方法。mysqlnd を使ってコンパイルします。 $ ./configure --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd$ ./configure --with-mysqli --with-pdo-mysql$ ./configure --with-mysqli=/path/to/mysql_config --with-pdo-mysql=/path/to/mysql_config

ライブラリの機能比較

mysqlnd を使うほうが、 MySQL Client Server library (libmysqlclient) よりもおすすめです。 どちらのライブラリも、開発が続いています。

 MySQL Native Driver (mysqlnd)MySQL クライアントサーバーライブラリ (libmysqlclient)
PHP の配布物に同梱YesNo
どのバージョンの PHP から使えるか5.3.0N/A
ライセンスPHP License 3.01デュアルライセンス
開発状況進行中進行中
ライフサイクル終了予定なし終了予定なし
コンパイルのデフォルト (すべての MySQL 拡張モジュール)YesNo
圧縮プロトコルへの対応YesYes
SSL への対応YesYes
名前付きパイプへの対応YesYes
ノンブロッキングの非同期クエリYesNo
パフォーマンス統計YesNo
LOAD LOCAL INFILE での open_basedir の反映YesNo
PHP ネイティブのメモリ管理システムを使う (PHP のメモリ制限などに従う)YesNo
数値型のカラムを double 型で返す (COM_QUERY)YesNo
数値型のカラムを string 型で返す (COM_QUERY)YesYes
プラグイン APIYesLimited
自動再接続Noオプション
To Top