2015-04-23 2 views
1

Я хочу получить массив таблиц из удаленной базы данных с использованием PDO (MSSQL) Я замечаю, что не могу использовать команды запроса mysql, любой совет, как получить всю информацию о таблицах из базы данных mssql с помощью pdo или mssql?PHP MSSQL PDO получить имена таблиц?

я могу подключиться:

try { 
    $hostname = $myServer; 
    $port = 10060; 
    $dbname = $myDB ; 
    $username = $myUser ; 
    $pw = $myPass; 
    $dbh = new PDO ("mssql:host=$hostname;dbname=$dbname","$username","$pw"); 
    } catch (PDOException $e) { 
    echo "Failed to get DB handle: " . $e->getMessage() . "\n"; 
    exit; 
    } 

, но не в состоянии получить данные:

$q = $dbh->prepare("DESCRIBE"); 
$q->execute(); 
$table_fields = $q->fetchAll(PDO::FETCH_COLUMN); 
print_r($table_fields); 

    } catch (PDOException $e) { 
    echo "Failed to get DB handle: " . $e->getMessage() . "\n"; 
    exit; 
    } 

разрешения пользователей я использую только имеет read разрешения

ответ

2

запрос к information_schema.

select Table_Name, table_type from information_schema.tables 

Вы можете использовать столбцы таблицы, чтобы получить имя + данные типы для столбцов и т.д.

select TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, data_type, CHARACTER_MAXIMUM_LENGTH 
from INFORMATION_SCHEMA.COLUMNS 
+0

Thnx, и как показать все поля внутри таблицы? – Jack

+0

См. Edit.Both таблицы содержат намного больше информации, но я включил несколько столбцов, как руководство –

Смежные вопросы