私は自分の会社のコードベースを読んでいて、もっとうまくやれるように思える何かを見ました。
$dbRow = $dbh->Execute("SELECT * FROM database.table LIMIT 1");
$tableColumnCount = $dbRow->_numOfFields;
これは、ADODBを使用して列数を取得する唯一の方法ですか?質問をすることができるようにクエリを実行しなければならないのはばかげているようです。
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の前にコマンドを実行して、既存のテーブルと列を反映させることをお勧めします。
いずれにせよ、プログラムがテーブルのスキーマを魔法のように認識できない限り、データベースにアクセスする必要があります。MySQLでLIMIT0が合法である場合、これはわずかに効率的です-LIMIT1をWHERE1=0に置き換えると予想されます。
MetaColumnsまたはMetaColumnNamesは、この情報を提供する必要があります