3

データベースが作成されたら、PHPを使用してデータベースにテーブルまたはテーブル構造が含まれているかどうかをどのように確認できますか?

シナリオ:

ユーザーが最初にシステムにアクセスすると、テーブルのないデフォルトのデータベースが作成され、次のステップで、ユーザーは.sqlファイルをアップロードしてカスタマイズされたデータベース構造をインポートすることになっています。以前に自動的に作成されたデフォルトのデータベースにテーブル構造があるかどうかを確認して、データベースをインポートしたかどうか、またはその手順をスキップしたかどうかを確認する必要があります。

実行すると、 SQLクエリは正常に実行されましたmysql_list_tables(defaultDBName)と返されますが、 phpMyAdminに結果が設定されていません。

4

4 に答える 4

7
<?php
$dbname = 'mysql_dbname';

if (!mysql_connect('mysql_host', 'mysql_user', 'mysql_password')) {
    echo 'Could not connect to mysql';
    exit;
}

$sql = "SHOW TABLES FROM $dbname";
$result = mysql_query($sql);

if (!$result) {
    echo "DB Error, could not list tables\n";
    echo 'MySQL Error: ' . mysql_error();
    exit;
}

while ($row = mysql_fetch_row($result)) {
    echo "Table: {$row[0]}\n";
}

mysql_free_result($result);
?>

ドキュメントからhttp://php.net/manual/en/function.mysql-list-tables.php

if(mysql_num_rows($result) > 0)$resultをループする代わりに使用できます。

于 2012-10-06T17:47:17.450 に答える
3

mysql_queryおよびmysql_list_tablesの使用は推奨されていません。代わりに、mysqli関数を使用することをお勧めします。

<?php
    $link = mysqli_connect("localhost", "my_user", "my_password", "world");

    if ($result = mysqli_query($link,"SHOW TABLES [FROM db_name] [LIKE 'pattern']")) {
        // Check mysqli_num_rows($result). 0 means you do not have your table.
    }

 ?>
于 2012-10-06T17:55:06.043 に答える
1

将来、where句などが必要になると思われる場合は、次を使用してください。

SELECT table_name FROM information_schema.tables WHERE table_schema = 'somedbname'

あなたが特定のテーブルを探しているなら、あなたは使うことができます

SELECT table_name FROM information_schema.tables WHERE table_schema = 'dbname' AND table_name = 'tablename'

詳細情報が必要な場合は、何を参照してください

SELECT * FROM information_schema.tables WHERE table_schema = 'somedbname'

戻り値

于 2012-10-06T17:53:54.053 に答える
0

このshow tablesコマンドを使用して、データベースにあるテーブルを確認できます。空に戻った場合、データベースは空です。

于 2012-10-06T17:46:24.323 に答える