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
시간도 걸리고 어려움도 많겠지만 짐을 지는 요령을 터득하게 되면 차츰 인생이 가벼워진다. (L.M.올컷)