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
살아 있는 동안 더 많이 감탄하세요. 가슴을 열고 보면 어디 감탄할 거리가 한두 가지입니까. 감탄할 거리가 있을때가 참을 것이 아니라 즉각 감탄해야 합니다. 가슴 두근거리고 놀라고 환호할때 우리의 행복은 곱으로 느껴집니다. (정채봉)