2010-07-14 3 views
0

우리 회사의 코드 기반을 통해 읽었으며 더 잘할 수있는 것처럼 보였습니다.ADODB 열 개수 얻기

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

ADODB를 사용하여 열 개수를 얻는 유일한 방법입니까? 질문을 할 수 있도록 쿼리를 실행해야하는 것은 바보 같습니다.

+0

하는가하면 OLE DB 제공 업체 MySQL을 지원 ADODB의 OpenSchema 방법을 제공해야합니까? – onedaywhen

답변

2

당신은 INFORMATION_SCHEMA.COLUMNS 테이블을 사용할 수 있습니다 WHERE와 LIMIT 1을 대체 할 것으로 예상과 같이 말했다

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

을, 당신은 INFORMATION_SCHEMA.COLUMNS가 기존 테이블과 열 because the data is cached을 반영하기 전에 FLUSH TABLES 명령을 실행하려고 할 수 있습니다.

1

프로그램이 마술처럼 테이블의 스키마를 알 수 없다면 데이터베이스에 도달해야합니다. LIMIT 0 MySQL의 법률 경우,이 약간 더 효율적인 것 - 나는 1 = 0

+0

난 그냥 추한 열 개수 종류를 얻을 쿼리를 실행 생각합니다. 나는 그들의 API가 이것을 요구할 것을 기대하고 있었다. – stevebot

+0

열의 수가 너무 나쁘지 않기를 바랄뿐입니다. 나는 동의한다 - 그것은 약간 추한 것이다. 그래도 잘 만들어진 점, Stevebot. –