| 제목 | CI 2.1.0 버전업후 field_data() 문제 | ||
|---|---|---|---|
| 글쓴이 | 양승현 | 작성시각 | 2015/09/04 16:03:45 |
|
|
|||
|
기존에 잘 사용하던 field_data() 가 사용이 안되어 수정하였습니다. field_data() 함수는 디비 쿼리 결과에 대한 각 필드별 타입 및 기타 정보를 가져오는 함수 입니다. /system/databases/drivers/mysql/mysql_result.php - line 76 부터
/**
* Field data
*
* Generates an array of objects containing field meta-data
*
* @access public
* @return array
*/
function field_data()
{
$retval = array();
/* 2015-09-04 버전업후 오류로 인한 필드데이터가 안나옴.
while ($field = mysql_fetch_object($this->result_id))
{
preg_match('/([a-zA-Z]+)(\(\d+\))?/', $field->Type, $matches);
$type = (array_key_exists(1, $matches)) ? $matches[1] : NULL;
$length = (array_key_exists(2, $matches)) ? preg_replace('/[^\d]/', '', $matches[2]) : NULL;
$F = new stdClass();
$F->name = $field->Field;
$F->type = $type;
$F->default = $field->Default;
$F->max_length = $length;
$F->primary_key = ( $field->Key == 'PRI' ? 1 : 0 );
$retval[] = $F;
}
*/
/* 임의 수정코드 */
$data=mysql_fetch_row($this->result_id);
if(!$data) return $data; // end of data
$index=0;
while($index < mysql_num_fields($this->result_id))
{
$meta=mysql_fetch_field($this->result_id, $index);
if(!$meta)
{
$retval[] = $index;
}
else
{
$retval[] = $meta;
}
$index++;
}
return $retval;
}
// --------------------------------------------------------------------
|
|||
| 다음글 | CI 2.1.0에서 헬퍼로 사용가능한 엑셀출력 (기존 ... (1) | ||
| 이전글 | IIS 서버 메모리 풀이 계속 일어날때 대처법 (1) | ||
|
한대승(불의회상)
/
2015/09/07 11:12:56 /
추천
0
|
최근 field_data() 사용 할 일이 거의 없어 알지 못했는데 그런 버그가 있었군요.
코어를 수정하기 뭐 하거나 컬럼별 주석이 필요한 경우엔 아래 URL을 참고 하세요.
http://cikorea.net/source/view/804/page/1/