PHP에서 동일한 열이 두 번 나타나는 이유 | PostgreSQL 쿼리? [복제]
Aug 18 2020
PHP 스크립트로 데이터를 검색하는 Postgres 데이터베이스가 있습니다. 이 스크립트 내에서 PDO를 통해 연결합니다.
$connection = new PDO('pgsql:host=' . $host . ';dbname=' . $database, $username, $password);
그런 다음 id
각 인스턴스를 나열해야하는 쿼리가 있습니다 .
$query = 'SELECT id FROM my_table WHERE "myCondition" = TRUE';
그런 다음 내 쿼리 결과를 얻습니다.
$result = $connection->prepare($query) or die($connection->error);
$result-> execute();
마지막으로 결과를 인쇄합니다.
foreach($result AS $row) { echo var_dump($row);
};
이제 내 문제는 $row
반환을 요청하는 경우에도 브라우저에서 각각에 대해 두 개의 값 배열을 얻는 것입니다 id
.
array (2) {[ "id"] => string (3) "GNQ"[0] => string (3) "GNQ"}
그래서 어떻게 든 id
다른 키 식별자 (이 경우 인덱스)를 사용 하여 두 번째 값을 얻습니다 . 내가 여기서 뭘 잘못하고 있니?
답변
1 deoomen Aug 18 2020 at 05:51
PDO fetch 유형으로 인해 동일한 값을 두 번 반환합니다. 기본값은 PDO::FETCH_BOTH
"0에서 인덱싱되고 이름 이 있는 열 반환"을 의미합니다. 명명 된 인덱스 만 반환하려면 옵션 배열을 사용하여 PDO 생성자에 네 번째 매개 변수를 추가하기 만하면됩니다 (https://www.php.net/manual/en/pdo.construct.php).
$connection = new PDO( 'pgsql:host=' . $host . ';dbname=' . $database, $username,
$password,
[\PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_OBJ]
);