mysqli
拡張モジュールが使えるようになったのは PHP バージョン
5.0.0 以降です。また、MySQL Native Driver が PHP に含まれるようになったのはバージョン 5.3.0 以降です。
一般的な Unix ディストリビューションには、バイナリ版の PHP がインストールされています。 これらのバイナリ版は、通常は MySQL 拡張モジュールに対応したものになっています。 しかし、拡張モジュールライブラリ自身を別パッケージでインストールする必要があるでしょう。 使用しているディストリビューションのパッケージマネージャで確認してみましょう。
たとえば Ubuntu なら、php5-mysql
パッケージをインストールすれば、
ext/mysql、ext/mysqli、そして pdo_mysql をインストールできます。CentOS の場合は
php-mysql
パッケージを使えば、同じものをインストールできます。
この拡張モジュールを自分でコンパイルすることもできます。 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 | 設定オプション: libmysqlclient |
変更履歴 |
---|---|---|---|---|
5.4.x 以降 | mysqlnd | --with-mysqli | --with-mysqli=/path/to/mysql_config | mysqlnd がデフォルトになりました。 |
5.3.x | libmysqlclient | --with-mysqli=mysqlnd | --with-mysqli=/path/to/mysql_config | mysqlnd が使えるようになりました。 |
5.0.x, 5.1.x, 5.2.x | libmysqlclient | 利用できません | --with-mysqli=/path/to/mysql_config | mysqlnd は使えません。 |
MySQL 拡張モジュールとクライアントライブラリの組み合わせは自由であることに注意しましょう。
たとえば、MySQL 拡張モジュールは MySQL Client Library (libmysqlclient) を使うようにして有効にし、
一方 mysqli
拡張モジュールは MySQL Native Driver
を使うようにするということも可能です。
しかし、それ以外にも拡張モジュールとクライアントライブラリのすべての組み合わせが使用可能です。
Windows の場合、php_mysqli.dll を php.ini で有効にする必要があります。
その他の PHP 拡張モジュール (php_mysqli.dll など)
を有効にするときと同様、PHP のディレクティブ
extension_dir
を設定して PHP 拡張モジュールのある場所を指定する必要があります。
Windows
での手動インストールの手順 も参照ください。
extension_dir
の値は、たとえば c:\php\ext のようになります。
注意:
ウェブサーバーの起動時に
"Unable to load dynamic library './php_mysqli.dll'"
のようなエラーが出たら、それは php_mysqli.dll をシステムが見つけられないことが原因です。