MySQL 및 PHP 5.3.8을 사용하는 웹 응용 프로그램에서 작업하고 있습니다. 간단한 쿼리 명령을 조인을 포함한 전체 쿼리 문자열로 변환하는 메커니즘이 있습니다.PDOStatement :: fetch() 및 중복 된 필드 이름
정규화 된 테이블이 조인되고 해당 필드가 호출되는 것을 알 수 없으므로 중복 된 필드 이름이있을 수 있습니다. PDOStatement::fetch(PDO::FETCH_ASSOC)
을 실행할 때, 나는 필드 이름의 연관 배열을 얻을 :
$test = $this->DBConnection->prepare("SELECT `events`.`Title`, `persons`.`Title` FROM `events` JOIN `persons` ON `events`.`HostID` = `persons`.`ID`;");
$test->execute();
$test->fetch();
하지만은 "제목"와 같은 반복 필드 이름을 구별 할 방법이 없습니다. 더 나쁜, 중복은 서로 덮어 : 나쁜 옛날에
array('Title' => 'Frodo Baggins');
, 나는 각 필드에 표를 얻기 위해 각 필드에 mysql_fetch_field()
을 달렸다. 제발, 필드 접두사 (SELECT events.Title AS eventsTitle;
)보다 좋은 방법이 있다고 말해주세요.
귀하의 도움에 감사드립니다.
SELECT events.Title AS eTitle, persons.Title AS pTitle FROM ...
그런 다음 행은 다음과 같습니다 :
이array('eTitle' => 'Hobbit Meeting', 'pTitle' => 'Frodo Baggins');
대안이 아니라 인덱스 배열로 결과를 가져올 것입니다 그들이 중복되지 않도록
MySQL과 마찬가지로 그룹화 할 수 있지만 데이터베이스에 데이터를 추가하는 방법에 따라 많은 부분을 허용하지 않거나 해당 필드가 약간 중요하지 않을 수도 있으므로 모든 것을 허용 할 수 있습니다. // 아무런 쓸모가 없어 보이는 후에 – qooplmao
그게 무슨 문제인가? – Barmar
그래, 나는 당신이 무응답 인 "대답"을 보았을 때 정말로 어떤 질문을하고 있는지 깨달았습니다. – qooplmao