0

私は自分の会社のコードベースを読んでいて、もっとうまくやれるように思える何かを見ました。

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

これは、ADODBを使用して列数を取得する唯一の方法ですか?質問をすることができるようにクエリを実行しなければならないのはばかげているようです。

4

3 に答える 3

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の前にコマンドを実行して、既存のテーブルと列を反映させることをお勧めします。

于 2010-07-14T21:59:48.797 に答える
1

いずれにせよ、プログラムがテーブルのスキーマを魔法のように認識できない限り、データベースにアクセスする必要があります。MySQLでLIMIT0が合法である場合、これはわずかに効率的です-LIMIT1をWHERE1=0に置き換えると予想されます。

于 2010-07-14T21:49:05.327 に答える
1

MetaColumnsまたはMetaColumnNamesは、この情報を提供する必要があります

于 2010-07-14T22:36:41.650 に答える