Проверка существования таблицы в базе данных с ZendFramework
Существует несколько способов проверить наличие таблицы в базе данных с помощью zendframework.
Первый и самый простой это использовать функцию listTables из Zend_db, но у этой функции есть ограничение, она получает список таблиц только текущей базы данных.
Например вам надо узнать существует ли таблица my_table в подключении к текущей базе данных:
$db = $this->getAdapter();
$tables = $db->listTables();
if (in_array(’my_table’, $table)){
//todo something with table
}
listTables() возвращает массив имен всех таблиц в текущей базе данных.
И второй метод является более универсальным, так как с его помощью можно проверить наличие таблицы в любой базе данных, если текущие права на подключение позволяют вам просматривать эту базу данных.
Пример:
$db = $this->getAdapter();
$sql = “show tables from any_db like ‘my_table’ “;
if ( $db->fetchOne($sql) ){
//todo something with table
}
fetchOne() вернет строку с именем таблицы, если таблица будет найдена, если ничего не будет найдено, то будет возвращена пустая строка.
С помощью приема с show tables можно проверять на существование одной и более таблиц, что делает этот прием более универсальным.
