MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

PHPでMySQLデータベースの一覧を取得する方法【サンプルコード付き】

利用可能なMySQLデータベースのリストを取得するには、PHPスクリプトを活用します。ここでは、基本的な取得方法から、現行のPHP環境で推奨される書き方まで、順を追って解説します。

基本的なサンプルコード

以下は、従来の mysql 拡張モジュールを使って、サーバー上の全データベース一覧を取得して表示するシンプルな例です。

<?php
    $con = mysql_connect("localhost", "userid", "password");

    if (!$con) {
        die('Could not connect: ' . mysql_error());
    }

    $db_list = mysql_list_dbs($con);

    while ($db = mysql_fetch_object($db_list)) {
        echo $db->Database . "<br />";
    }

    mysql_close($con);
?>

処理の流れ

  1. 接続: mysql_connect() でホスト名・ユーザーID・パスワードを指定してMySQLサーバーに接続します。
  2. エラーチェック: 接続に失敗した場合は die() でエラーメッセージを表示して処理を終了します。
  3. 一覧の取得: mysql_list_dbs() を呼び出すことで、利用可能なデータベースの一覧(結果セット)を取得できます。
  4. 表示: while ループと mysql_fetch_object() を組み合わせて、各データベース名を1行ずつ出力します。
  5. 切断: 最後に mysql_close() で接続を閉じます。

注意:mysql拡張モジュールは非推奨です

mysql_connect()mysql_list_dbs() といった mysql_* 系関数は、PHP 5.5で非推奨となり、PHP 7.0以降では完全に削除されています。現在の開発環境では動作しないため、代わりに mysqli 拡張モジュールまたは PDO を使用してください。

mysqliを使った現代的な書き方

同じ処理を、現在推奨されているmysqliで書き直すと次のようになります。

<?php
    $con = new mysqli("localhost", "userid", "password");

    if ($con->connect_error) {
        die('Could not connect: ' . $con->connect_error);
    }

    $result = $con->query("SHOW DATABASES");

    while ($row = $result->fetch_assoc()) {
        echo $row['Database'] . "<br />";
    }

    $con->close();
?>

この例では、SQL文 SHOW DATABASES を実行してデータベース一覧を取得しています。こちらの方法であれば、最新のPHPバージョンでも安全に動作させることができます。

  1. MySQLデータベースのテーブルサイズを取得・確認する方法

    MySQLデータベース内の各テーブルのサイズを確認したい場合、システムが標準で提供している「information_schema.TABLES」を利用するのが最も手軽な方法です。このスキーマには、すべてのデータベースとテーブルに関するメタ情報(データ長、インデックス長など)が格納されており、SQLクエリだけで簡単に容量を調べることができます。全テーブルのサイズを一覧表示するSQL構文以下のクエリを実行すると、指定したデータベースに含まれるすべてのテーブルのサイズをMB単位で一覧取得できます。 SELECT TABLE_NAME AS `ALLTABLESNAME`, ROUND((DATA_L

  2. PHPとMySQLでENUM型の取り得る値を取得する方法

    MySQLデータベースに定義されたENUM型の列が取り得る値(選択肢)を確認したい場合、INFORMATION_SCHEMA.COLUMNSテーブルを参照することで簡単に取得できます。このテーブルにはデータベース内のすべてのテーブルや列のメタ情報が格納されており、COLUMN_TYPEカラムからENUMの定義そのものを文字列として取り出すことが可能です。 基本構文 ENUM型の候補値を取得するための基本的なSQL構文は以下の通りです。 SELECT COLUMN_TYPE AS 任意の別名 FROM INFORMATION_SCHEMA.COLUMNS WHERE T