ADODB获取列数

时间:2010-07-14 21:43:09

标签: php sql mysql adodb

我正在阅读我公司的代码库,我看到了一些似乎可以做得更好的东西。

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

这是使用ADODB获取列数的唯一方法吗?执行查询似乎很愚蠢,因此您可以提出问题。

3 个答案:

答案 0 :(得分:2)

您可以使用INFORMATION_SCHEMA.COLUMNS表:

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

也就是说,您可能希望在INFORMATION_SCHEMA.COLUMNS之前运行FLUSH TABLES命令以反映现有的表和列because the data is cached

答案 1 :(得分:1)

无论哪种方式,您都必须最终访问数据库,除非您的程序可以神奇地知道表的架构。如果LIMIT 0在MySQL中是合法的,那么这会更有效 - 因为我预计会用WHERE 1 = 0替换LIMIT 1。

答案 2 :(得分:1)

MetaColumns or MetaColumnNames应该为您提供此信息