ResultSet 관련 함수
컨텐츠 정보
- 17,040 조회
- 9 추천
- 목록
본문
자바의 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");
}
과 같이 사용하면 됩니다. 여기에 테이블이나 업무단위로 엔티티 클래스를 만들어서 해당 레코드셋을 배열이나 페이징객체로 리턴하도록 코딩해도 됩니다.
<?
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");
}
과 같이 사용하면 됩니다. 여기에 테이블이나 업무단위로 엔티티 클래스를 만들어서 해당 레코드셋을 배열이나 페이징객체로 리턴하도록 코딩해도 됩니다.
관련자료
-
링크
댓글 0
등록된 댓글이 없습니다.