5

重複の可能性:
php での mysql サポートの検出

この特定の PHP インストールが MYSQL をサポートするようにコンパイルされているかどうかをプログラムで確認する簡単な方法はありますか?

4

4 に答える 4

9

実際には、MySQL をサポートする複数のモジュール (mysql、mysqli、pdo_mysql など) があります。 元の mysql モジュールよりも MySQL5 の機能をより完全にサポートするには、通常、MySQLi (改良版)をお勧めします。PDO (PHP データ オブジェクト)は、オブジェクト指向のデータ抽象化を提供するデータベース抽象化レイヤーです。

function_exists()モジュールごとに特定の関数 (mysql_connect、mysqli_connect、...) の存在を確認する場合は、前のコメントに従って使用できます。

または、PHP 関数extension_loaded()を使用して拡張機能自体を確認することもできます (モジュール名は phpinfo() からの出力と一致します)。

<?php
    if (extension_loaded('mysql') or extension_loaded('mysqli')) {
        // Looking good
    }
?>

コマンド ライン プロンプトから、次のコマンドを使用して、コンパイル済みのすべてのモジュールを一覧表示できます。

php -m

Unix っぽいシステムを使用grepしている場合は、出力を MySQL 関連のモジュールにフィルターするために使用します。

php -m | grep -i mysql

Windows を使用findstrしている場合は、MySQL 関連のモジュールへの出力をフィルター処理するために使用します。

php -m | findstr -i mysql
于 2012-06-19T12:54:31.820 に答える
8
if (function_exists('mysql_connect')) ...
于 2012-06-19T08:50:51.700 に答える
3

私はあなたがphpinfo();を探しているかもしれないと思います。

これは、PHP構成に関する情報を示しています。

phpinfo —PHPの構成に関する情報を出力します

于 2012-06-19T08:50:40.603 に答える
2

はいあります。mysql_*関数の1つが存在するかどうかを確認してくださいmysql_connect

if (function_exists("mysql_connect")) {
  echo "compiled using --with-mysql\n";
}
于 2012-06-19T08:50:37.217 に答える