CI 묻고 답하기

제목 데이터베이스 관련 질문드려요~
글쓴이 0년차 작성시각 2013/09/27 18:15:16
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 13245   RSS
 $query = $this->db->get('table_name');

으로 데이터를 뽑았을때..포이치문 말고 와일문으로 데이터 결과를 얻는 방법은 없나요?

포이치문으로 데이터를 받으려고 하면 포이치문이 와일보다 무거워서 그런건지 메모리 초과 오류가 나서

와일문으로 받아보려고 하는데 와일문으로 데이터 결과 얻는 방법이 있다면 알려주시면 감사하겠습니다.
 다음글 write 부분 질문 있습니다. 써지긴 써지는데요. (2)
 이전글 하나의 인풋을 사용하는 멀티업로드 라이브러리 어떤거 쓰... (2)

댓글

에카 / 2013/09/27 19:05:48 / 추천 0
foreach문이 더 가볍습니다. while문이 더 무겁구요.

$result = result_array() 로 결과값을 받아올수있다고 가정하고 해보겠습니다.

while로 하려면
while($i <= count($result))
{
  print_r($result[$i]);
  $i++;
}

이런식으로 하시면 될듯 합니다.
에카 / 2013/09/27 19:06:26 / 추천 0
정말 확실한건 대부분의 PHP 코딩기법, 그리고 최적화기법, 그리고 많은사람들이 배열에 대한 처리는 while문, for문보단 foreach문을 권장합니다.
letsgolee / 2013/09/27 22:23:33 / 추천 0
메뉴얼을 보니 다음을 이용하면 되지 않을까 싶네요:
$row = $query->first_row()
$row = $query->last_row()
$row = $query->next_row()
$row = $query->previous_row()

빛그림 / 2013/09/27 22:45:09 / 추천 0
메모리 초과 오류까지 나올정도면 쿼리에 Limit으로 레코드를 좀 끊어서 확인해보시면 기존 코드로도 가능할듯 합니다. 그리고 에카님께서 말씀하신 것처럼 while 보다는 foreach가 더 가볍기에 좀더 빠른 처리가 가능합니다.

0년차 / 2013/10/02 11:00:39 / 추천 0
 감사인사가 늦었습니다..ㅠㅠ

와일문으로도 처리가 어려워서 포이치문으로 처리하였고..

메모리 오류는 ini_set('memory_limit', '512M'); 으로 해결했습니다..

답변해주셔서 감사합니다..^^