약 7 년 전에 나의 첫 번째 mySQL 프로젝트를 개발 한 이래로 데이터베이스에 액세스하기 위해 동일한 간단한 함수 세트를 사용 해왔다. 최근 이것들을 Database 클래스에 넣는다). 내가 개발 한 프로젝트가 복잡 해짐에 따라 데이터베이스에 더 많은 레코드가 생겨 결과적으로 메모리 문제가 발생할 가능성이 커졌습니다.PHP MySQL 결과 세트를 반복 할 때 '허용 메모리 크기 67108864 bytes exhausted'
mySQL 결과 세트를 반복 할 때 PHP 오류 Allowed memory size of 67108864 bytes exhausted
이 발생하고 높은 메모리 사용량이없는 유연성을 얻는 더 좋은 방법이 있는지 궁금합니다. 그때 쿼리를 작성하고 모든 결과, 예를 얻을 수있는 기능을 사용할 수 있습니다
function get_resultset($query) {
$resultset = array();
if (!($result = mysql_unbuffered_query($query))) {
$men = mysql_errno();
$mem = mysql_error();
echo ('<h4>' . $query . ' ' . $men . ' ' . $mem . '</h4>');
exit;
} else {
$xx = 0 ;
while ($row = mysql_fetch_array ($result)) {
$resultset[$xx] = $row;
$xx++ ;
}
mysql_free_result($result);
return $resultset;
}
}
:
내 기능은 다음과 같습니다
$query = 'SELECT * FROM `members`';
$resultset = get_resultset($query);
내가 할 수있는 다음 $resultset
및 디스플레이를 통해 루프 예 :
$total_results = count($resultset);
for($i=0;$i<$total_results;$i++) {
$record = $resultset[$i];
$firstname = $record['firstname'];
$lastname = $record['lastname'];
// etc, etc display in a table, or whatever
}
더 좋은 루핑 방법이 있습니까? 결과 목록을 표시하기 위해 각 레코드의 속성에 계속 액세스 할 수 있습니까? 나는 비슷한 문제가있는 사람들을 찾고 있었고 주어진 답은 제 상황에 어울리는 것 같지 않거나 다소 모호합니다. 어떤 도움이라도 대단히 감사하겠습니다.
php PDO 클래스를 살펴볼 수 있습니다. http://php.net/manual/en/book.pdo.php – seavers
[PDO] (http://php.net/)를 사용해보십시오. pdo) mysql_ * 함수는 꽤 오래 동안 사용되지 않았으므로 가까운 장래에 사라질 것입니다. – rid