PHP 메모리 부족

Jmnote
PHP 메모리 부족
Fatal error: Allowed memory size of 134217728 bytes exhausted
memory exhausted in ofc_scatter.php
Open Flash Chart 2 메모리 부족

목차

 [숨기기

문제 상황

  • PHP의 메모리 제한 기본값은 128MB[1]이다.
  • 데이터가 너무너무 많을 경우 PHP에서 다음과 같이 메모리 부족 메시지가 발생하더라.

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 32 bytes) in /var/www/html/open-flash-chart/php-ofc-library/ofc_scatter.php on line 5

설정값 확인

[root@jmnote ~]# cat /etc/php.ini | grep memory_limit
memory_limit = 128M

조치방법 1 (PHP 소스)

PHP 소스에서 아래 명령어를 수행하면 그 PHP 페이지 실행에 한하여 메모리 제한이 변경된다.

  • 메모리 제한 늘리기
ini_set('memory_limit','192M');
  • 메모리 제한 풀기
ini_set('memory_limit','-1');

조치방법 2 (PHP 설정)

PHP 설정파일에서 메모리 제한 수정하기. 모든 PHP 파일에 적용되며, 적용시 아파치 재시작이 필요하다.

vi /etc/php.ini

memory_limit를 찾아 파라미터를 적절한 값으로 수정하고 저장한다. 수정된 php.ini가 적용되려면 httpd 재시작이 필요하다.

service httpd restart

같이 보기

주석

  1. 128\times1024^2=134217728

'PHP > php_mysql연동' 카테고리의 다른 글

network연결하여 Image 불러오기  (0) 2013.07.04
PHP로 Mysql 연동(1)  (0) 2013.07.03
mysql_fetch_assoc 와 mysql_fetch_array의 차이점  (0) 2013.07.02

'실내 측위 시스템 > 참고자료' 카테고리의 다른 글

안드로이드 음성 주파수 확인  (0) 2013.07.10
  •  mysql 쿼리 작성

 

  •  php 작성

  • android 소스 작성

 

 

 

 

 

# [PHP] mysql_fetch_assoc 와 mysql_fetch_array의 차이점

두 함수는 데이터 값을 연관배열을 써서 가져오는 함수이다.

둘다 기능이 비슷하지만 약간의 차이가있다.

차이점은 print_r해보면 알 수있다.


1. mysql_fetch_assoc의 경우 print_r하면 키값에 데이터값을 가지고있다.

ex) 필드명 => 데이터값

2. mysql_fetch_array는 숫자형키값에 데이터값을 가지고있다.

ex) 0 => 데이터값


여기서 연관배열이란 키값을 가지고 있는 배열이라고 하여 다차원 배열이라고 보면된다.


참고사이트 :

- phpstorm (http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_function&wr_id=304539)

=====좀더 상세한 설명^^==========================

mysql_fetch_array(), mysql_fetch_assoc() 는 DB에서 가져온 내용의 값을 배열변수에 대입하는 역할

mysql_fetch_array() 는 위에서 작성한 것과 같이,

$row[0], $row[1], $row[2], $row[3] .......
$row[no], $row[title], $row[content], $row[regdate] .......

이 두 문법으로 어떤 것이든 사용가능하다. 허나 [1], [2] 형식으로 사용하기엔
테이블의 정보가 머리속에 꿰차고 있지 않는 이상, 간단한 COUNT() 함수나 as 문으로 가져온 내용만 사용하게 됨

즉, 쉽게 설명 하자면 서버 메모리에 같은 value값의 배열변수가 두개씩 저장이 된다는 점.

mysql_fetch_assoc() 는 [1][2][3] 형식의 키값은 저장이 안되고 오직
테이블의 필드명으로 저장, [no][title][content] 값들만 저장됨.
서버에 부하를 덜어주는 중요한 함수

'PHP > php_mysql연동' 카테고리의 다른 글

network연결하여 Image 불러오기  (0) 2013.07.04
PHP 메모리 부족 134217728  (2) 2013.07.03
PHP로 Mysql 연동(1)  (0) 2013.07.03

+ Recent posts