ADODB Получение количества столбцов - PullRequest
0 голосов
/ 15 июля 2010

Я читал нашу кодовую базу в своей компании и увидел что-то, что, казалось, можно было сделать лучше.

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

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

Ответы [ 3 ]

2 голосов
/ 15 июля 2010

Вы можете использовать таблицу 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 отразит существующиетаблицы и столбцы , поскольку данные кэшируются .

1 голос
/ 15 июля 2010

MetaColumns или MetaColumnNames должны предоставить вам эту информацию

1 голос
/ 15 июля 2010

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

...