Проверьте, существует ли таблица базы данных с помощью PHP/PDO

Вы можете снова передать его в cut:

cut -d'|' -f5 <input.txt | cut -c1-7

Или использовать awk:

awk -F'\|' '{print substr($5, 1, 7)}' input.txt
25
задан Brian Tompsett - 汤莱恩 18 January 2017 в 20:18
поделиться

5 ответов

Do:

select 1 from your_table

and then catch the error. If you don't get any error, but resultset with one column containing "1", then the table exists.

10
ответ дан 28 November 2019 в 18:19
поделиться

В рамках проекта создайте представление схемы.

Для Oracle это будет что-то вроде

SELECT TABLE_NAME FROM ALL_TABLES

Для Mysql:

SELECT TABLE_NAME FROM information_schema.tables WHERE table_schema = 'mydbname'

ETC ..

А затем запустить запрос в коде для представления.

3
ответ дан 28 November 2019 в 18:19
поделиться

Вы можете выполнить запрос «выберите количество (*) из таблицы» из php. Если он возвращает ошибку или исключение, таблица не существует. Это могло бы быть последним возможным средством, и я уверен, что это сработает.

Или вы можете напрямую проверить таблицу схемы (возможно, администратор может установить дополнительные разрешения)

0
ответ дан 28 November 2019 в 18:19
поделиться

Я делаю несколько вещей в своих веб-приложениях с помощью CodeIgniter, чтобы проверить, существует ли база данных (и что она полезна). Любое из них может работать:

@$this->load->database();
$v = @$this->db->version()
$tables = @$this->db->list_tables();

Добавление @ подавит ошибки, если они включены в настройках PHP, а проверка результатов version () и list_tables () может использоваться не только для определения наличия вашей БД. (но это тоже нормально).

0
ответ дан 28 November 2019 в 18:19
поделиться

Это, кажется, работает, по крайней мере, с SQLite3 без исключений и т.д.:

        $select =
            "SELECT CASE WHEN EXISTS (SELECT * FROM SQLITE_MASTER WHERE TYPE = 'table' AND NAME = :tableName) THEN 1 ELSE 0 END AS TABLE_EXISTS;";
0
ответ дан 28 November 2019 в 18:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: