
PDOStatement::setFetchMode 함수는 데이터베이스에서 데이터를 가져올 때 fetch mode를 설정하는 데 사용됩니다. fetch mode는 데이터를 가져올 때의 데이터 형식을 결정합니다.
- PDO::FETCH_ASSOC: 각 열이 이름으로 된 배열로 데이터를 가져옵니다. 예를 들어, 'id' => 1, 'name' => 'John'과 같은 형식입니다.
- PDO::FETCH_BOTH: 각 열이 이름과 인덱스로 된 배열로 데이터를 가져옵니다. 예를 들어, [0 => 'id', 1 => 'name'] => ['id' => 1, 'name' => 'John']과 같은 형식입니다.
- PDO::FETCH_NUM: 각 열이 인덱스로 된 배열로 데이터를 가져옵니다. 예를 들어, [0 => 1, 1 => 'John']과 같은 형식입니다.
- PDO::FETCH_OBJ: 각 열이 객체의 속성으로 데이터를 가져옵니다. 예를 들어, stdClass Object([id] => 1, [name] => 'John')과 같은 형식입니다.
각 fetch mode의 사용 예시는 다음과 같습니다.
#hostingforum.kr
php
$stmt = $pdo->prepare('SELECT id, name FROM users');
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$result = $stmt->fetchAll();
print_r($result); // ['id' => 1, 'name' => 'John']
$stmt = $pdo->prepare('SELECT id, name FROM users');
$stmt->setFetchMode(PDO::FETCH_BOTH);
$result = $stmt->fetchAll();
print_r($result); // [[0 => 'id', 1 => 'name'] => ['id' => 1, 'name' => 'John']]
$stmt = $pdo->prepare('SELECT id, name FROM users');
$stmt->setFetchMode(PDO::FETCH_NUM);
$result = $stmt->fetchAll();
print_r($result); // [[0 => 1, 1 => 'John']]
$stmt = $pdo->prepare('SELECT id, name FROM users');
$stmt->setFetchMode(PDO::FETCH_OBJ);
$result = $stmt->fetchAll();
print_r($result); // stdClass Object([id] => 1, [name] => 'John')
각 fetch mode의 특징을 이해하고 적절하게 사용하면 데이터베이스에서 데이터를 가져올 때 더 효율적으로 데이터를 처리할 수 있습니다.
2025-08-09 18:19