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 を使うことを推奨します。 PHP 8.2.0 以降では、MySQL Native Driver が唯一の選択肢です。 そのほうがパフォーマンスが向上し、MySQL Client Library を使用した場合には使えない機能も使用することができます。 PHP の MySQL Native Driver とは? に、MySQL Native Driver の利点が簡単にまとめられています。
/path/to/mysql_config は、MySQL Server に含まれる
mysql_config プログラムの場所を表します。
| PHP バージョン | デフォルト | 設定オプション: mysqlnd | 設定オプション: libmysqlclient |
変更履歴 |
|---|---|---|---|---|
| 8.2.0 以降 | mysqlnd | --with-mysqli | libmysqlclient はサポートされません。 | mysqlnd しか使えなくなりました。 |
| 5.4.0 から 8.1.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 は使えません。 |
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 をシステムが見つけられないことが原因です。