2010-07-14 2 views
0

Я читал нашу базу кода в своей компании, и я увидел нечто похожее на то, что это можно сделать лучше.ADODB Получение колонки count

$dbRow = $dbh->Execute("SELECT * FROM database.table LIMIT 1"); 
$tableColumnCount = $dbRow->_numOfFields; 

Это единственный способ получить счетчик столбцов с помощью ADODB? Просто кажется глупым выполнить запрос, чтобы вы могли задать вопрос.

+0

ли вы OLE DB провайдер поддержки MySQL метод ADOdb в OpenSchema? – onedaywhen

ответ

2

Вы можете использовать INFORMATION_SCHEMA.COLUMNS таблицы:

SELECT COUNT(*) 
    FROM INFORMATION_SCHEMA.COLUMNS 
WHERE table_name = 'your_table_name' 
    AND table_schema = 'your_database_name' 

Это произнесенный, может потребоваться запустить команду FLUSH TABLES до того, как для INFORMATION_SCHEMA.COLUMNS будут отображаться существующие таблицы и столбцы because the data is cached.

1

Каким бы способом вам не удавалось попасть в базу данных, если ваша программа не сможет узнать магию схемы таблицы. Если LIMIT 0 является законным в MySQL, то это будет немного более эффективным - как я ожидал бы заменить LIMIT 1 с WHERE 1 = 0.

+0

Я просто думаю, что выполнение запроса, чтобы получить количество столбцов, выглядит некрасиво. Я надеялся, что их API откроет для этого вызов. – stevebot

+0

Если вы хотите, чтобы количество столбцов было не так уж плохо, я полагаю. Я согласен - это немного уродливо. Точка хорошо сделана, хотя Стейбот. –

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