
PDOStatement::columnCount() 함수는 SQL 쿼리 실행 후에만 열의 개수를 반환합니다. 따라서, prepare() 함수를 호출한 후에 execute() 함수를 호출한 후에만 열의 개수를 가져올 수 있습니다.
위 코드에서 문제는 prepare() 함수를 호출한 후에 execute() 함수를 호출하지 않아서 발생합니다. execute() 함수를 호출한 후에 columnCount() 함수를 호출하면 정상적으로 열의 개수를 반환할 것입니다.
정정된 코드는 다음과 같습니다.
#hostingforum.kr
php
$stmt = $db->prepare("SELECT * FROM 테이블명");
$stmt->execute();
$columnCount = $stmt->columnCount();
echo $columnCount; // 정상적으로 열의 개수가 반환됩니다.
또한, PDOStatement::columnCount() 함수는 SQL 쿼리에서 SELECT 절에 지정된 열의 개수를 반환합니다. 만약 SQL 쿼리에서 열을 지정하지 않으면, 열의 개수가 반환되지 않을 수 있습니다. 따라서, SQL 쿼리에서 열을 지정하는 것이 좋습니다.
#hostingforum.kr
php
$stmt = $db->prepare("SELECT id, name, age FROM 테이블명");
$stmt->execute();
$columnCount = $stmt->columnCount();
echo $columnCount; // 정상적으로 열의 개수가 반환됩니다.
2025-06-12 14:18