PHP & Others

ResultSet 관련 함수

페이지 정보

본문

자바의 ResultSet을 php로 옮겨 본것입니다.
<?
    class ResultSet {
        var $field_index; //필드의 인덱스값
        var $row;
       
        function ResultSet($resultset) {
            $this->resultset = $resultset;
            $field_num = mysql_num_fields($resultset);
            $field;
            for ($i = 0 ; $i < $field_num ; $i++) {
              $field = mysql_fetch_field($resultset, $i);
              $this->field_index[$field->name] = $i;
            }
        }

        /**
          * 다음 레코드가 있는지 확인한다.
          */
        function next() {
            $this->row = mysql_fetch_row($this->resultset);
            if ($this->row) {
                return true;
            } else {
                return false;
            }
        }

        /**
          * 필드값을 리턴한다.
          */
        function get($field_name) {
            if ((String)$this->field_index[$field_name] == null) {
            } else {
                return $this->row[$this->field_index[$field_name]];
            }
        }
    }
?>

사용법 :
$sQuery = "SELECT ID, NAME FROM TUSER";
$resultset = mysql_query($sQuery, $dbconn);
$rs = new ResultSet($resultset);
다음에 실제로 쿼리한 데이타를 구할때는
if ($rs->next()) {
    echo $rs->get("ID");  //실제로 쿼리문에서 날린 필드명
    echo $rs->get("NAME");
}
또는
while ($rs->next()) {
    echo $rs->get("ID");  //실제로 쿼리문에서 날린 필드명
    echo $rs->get("NAME");
}
과 같이 사용하면 됩니다. 여기에 테이블이나 업무단위로 엔티티 클래스를 만들어서 해당 레코드셋을 배열이나 페이징객체로 리턴하도록 코딩해도 됩니다.

관련자료

등록된 댓글이 없습니다.
Today's proverb
자기 자리의 중요성을 아는 사람은 절대로 외로움이나 쓸쓸함 따위를 느끼지 않는다. 나를 기억하고 있는 단 한 사람이라도 있다면, 나를 필요로 하는 곳이 단 한 군데만이라도 있다면 그 사람은 매우 행복한 사람이 아닐까. 지금, 이 자리의, 자신으로부터 작지만, 결코 작지 않은 새로운 역사가 시작되는 것이다. (안도현)