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
나는 언제나 나의 바깥에서 힘과 자신감을 찾았지만, 그것들은 항상 나의 내부에 있었다. (안나 프로이트)