В основном у меня есть MySQL dbname = test и моя таблица name = page.
Я хочу создать запрос с помощью php PDO, чтобы проверить, существует ли таблица «page» в моем «тесте» db,
Я пробовал эти две вещи, но это не работает. Первый пример всегда говорит мне, что он не существует .. даже когда он существует в моем db, а второй пример говорит мне, что он всегда существует … даже когда он не существует ….
$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"; }
Как насчет:
$results = $db->query('SHOW TABLES LIKE \'page\''); if (count($results->fetchAll()) > 0) { echo 'table exists'; } else { echo "it doesnt"; }
Убедитесь, что ваш пользователь имеет доступ к базе information schema
данных и выполните следующие действия:
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'database_to_search' AND TABLE_NAME LIKE "table_here%"
Затем возьмите и проверьте свои результаты. Используя вышеизложенное, если вам нужно, вы также можете ограничить свой ответ (смещение, ограничение).