mysqli 拡張モジュールが使えるようになったのは PHP バージョン 5.0.0 以降です。また、MySQL Native Driver が PHP に含まれるようになったのはバージョン 5.3.0 以降です。
一般的な Unix ディストリビューションには、バイナリ版の PHP がインストールされています。 これらのバイナリ版は、通常は MySQL 拡張モジュールに対応したものになっています。 しかし、拡張モジュールライブラリ自身を別パッケージでインストールする必要があるでしょう。 使用しているディストリビューションのパッケージマネージャで確認してみましょう。
もしご利用の Unix ディストリビューションの提供するバイナリパッケージに mysqli 拡張モジュールが含まれていない場合は、 PHP をソースコードからビルドしなければなりません。 PHP をソースからビルドすれば、使いたい MySQL 拡張モジュールを指定したり 各拡張モジュールが使用するクライアントライブラリを選択したりすることができます。
MySQL Native Driver を使うことを推奨します。 そのほうがパフォーマンスが向上し、MySQL Client Library を使用した場合には使えない機能も使用することができます。 PHP の MySQL Native Driver とは? に、MySQL Native Driver の利点が簡単にまとめられています。
/path/to/mysql_config は、MySQL Server に含まれる mysql_config プログラムの場所を表します。
PHP バージョン | デフォルト | 設定オプション: mysqlnd | 設定オプション: libmysql | 変更履歴 |
---|---|---|---|---|
5.0.x, 5.1.x, 5.2.x | libmysql | 利用できません | --with-mysqli=/path/to/mysql_config | |
5.3.x | libmysql | --with-mysqli=mysqlnd | --with-mysqli=/path/to/mysql_config | mysqlnd が使えるようになりました。 |
5.4.x | mysqlnd | --with-mysqli | --with-mysqli=/path/to/mysql_config | mysqlnd がデフォルトになりました。 |
MySQL 拡張モジュールとクライアントライブラリの組み合わせは自由であることに注意しましょう。 たとえば、MySQL 拡張モジュールは MySQL Client Library (libmysql) を使うようにして有効にし、 一方 mysqli 拡張モジュールは MySQL Native Driver を使うようにするということも可能です。 しかし、それ以外にも拡張モジュールとクライアントライブラリのすべての組み合わせが使用可能です。
次の例は、MySQL 拡張モジュールを MySQL Client Library を使うようにビルドし、一方 mysqli と PDO MYSQL 拡張モジュールでは MySQL Native Driver を使うようにするものです。
./configure --with-mysql=/usr/bin/mysql_config \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd [other options]
Windows の場合、PHP のインストールにはたいていバイナリインストーラを使用します。
PHP をインストールしたら、mysqli を有効にしてクライアントライブラリを指定するためにいくつかの設定が必要です。
mysqli 拡張モジュールはデフォルトでは有効になりません。そこで、 php_mysqli.dll DLL を php.ini の中で有効化しなければなりません。有効化するには、まず php.ini を探し (通常は c:\php にあります)、 そして extension=php_mysqli.dll という行の最初にあるコメント (セミコロン) を削除します。この行は [PHP_MYSQLI] というセクションにあります。
また、MySQL Client Library を mysqli で使いたい場合は、PHP からクライアントライブラリのファイルにアクセスできるようにしなければなりません。 MySQL Client Library は libmysql.dll という名前のファイルで、これは Windows 版の PHP に含まれています。 このファイルを Windows の環境変数 PATH で指定された場所に置けば読み込めるようになります。 FAQ の "Windows で PHP のディレクトリを PATH に追加するにはどうすればいいのですか?" に、その方法が説明されています。 libmysql.dll を Windows のシステムディレクトリ (通常は c:\Windows\system) にコピーしても動作します。 システムディレクトリは、デフォルトでシステムの PATH に含まれているからです。 しかし、これはできるだけ避けるようにしましょう。
その他の PHP 拡張モジュール (php_mysqli.dll など) を有効にするときと同様、PHP のディレクティブ extension_dir を設定して PHP 拡張モジュールのある場所を指定する必要があります。 Windows での手動インストールの手順 も参照ください。PHP 5 の extension_dir の値は、たとえば c:\php\ext のようになります。
注意:
ウェブサーバーの起動時に "Unable to load dynamic library './php_mysqli.dll'" のようなエラーが出たら、それは php_mysqli.dll や libmysql.dll をシステムが見つけられないことが原因です。
Windows の PHP バージョン 5.3 以降では、 mysqli 拡張モジュールはデフォルトで有効になっており、 また MySQL Native Driver を使うようになっています。つまり、 libmysql.dll にアクセスできるようにする必要はないということです。