3

基本的に、MySQL dbname = test とテーブル名 = page を持っています。

テーブル「ページ」がデータベース「テスト」に存在するかどうかを確認するために、php PDO を使用してクエリを作成したい

私はこれらの2つのことを試しましたが、うまくいきません..最初の例は、それが存在しないことを常に示しています..データベースに存在する場合でも、2番目の例は常に存在することを示しています...それは存在しません....

$db = new PDO('mysql:host=' . $DB_SERVER . ';dbname=' . $DB_NAME, $DB_USER, $DB_PASS);

if (array_search('pages', $db->query('show tables')->fetch()) !== false) {
    echo "the db exists";
} else {
    echo "the db doesnt exists";
}

私もこれを試しました

$results = $db->query('SHOW TABLE LIKE \'page\'');
if (count($results) > 0) {
    echo 'table exists';
} else {
    echo "it doesnt";
}
4

2 に答える 2

3

どうですか:

$results = $db->query('SHOW TABLES LIKE \'page\'');
if (count($results->fetchAll()) > 0) {
    echo 'table exists';
} else {
    echo "it doesnt";
}
于 2012-08-23T18:48:40.453 に答える
0

ユーザーがinformation schemaデータベースにアクセスできることを確認し、次の操作を行います。

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'database_to_search'
AND TABLE_NAME LIKE "table_here%" 

次に、結果を取得して確認します。必要に応じて上記を使用すると、応答を制限することもできます (オフセット、制限)。

于 2012-08-23T18:40:12.730 に答える