<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 전면 섹션,기사의 내용과 관련이 없습니다.</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"이 기사에서는 자세히 소개합니다 PHP 사용 mysqli_stmt::store_result 모범 사례。"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 기사 텍스트 부분</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<h2>우리가 사용하는 데 도움이되는 모범 사례는 무엇입니까? mysqli_stmt::store_result 메모리 누출 문제를 피하십시오?</h2>"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<p>사용 중 PHP ~의 <code>mysqli "; 에코 " 단순히 데이터 라인만으로 데이터를 가져 오면 bind_result () 및 fetch ()를 사용하여 충분하며 전체 결과 세트를 캐시 할 필요가 없습니다.
" ; 에코 "$ stmt = $ mysqli- > 준비 ( '선택 ID, 사용자의 이름'); $ stmt- > execute (); $ stmt- > bind_result ( $ id , $ name ); while ( $ stmt -> fetch ()) {echo $ id . ' -'. $ 이름 ; } // store_result가 호출되지 않으며 메모리 저장 $ stmt- > close (); "; 에코 "
매우 큰 테이블의 경우 캐시 된 전체 결과 세트는 많은 메모리를 차지합니다. 한계 및 오프셋 페이지 매김 쿼리를 사용하는 것이 좋습니다. 한 번에 부분 데이터 만 얻습니다.
" ; 에코 "$ page = 0; $ 한도 = 100; $ stmt = $ mysqli- > 준비 ( 'select * from big_table 한계?,?'); $ stmt- > bind_param ( 'ii', $ page * $ limit , $ limit ); $ stmt- > execute (); $ stmt- > store_result (); // 프로세스 데이터 ... $ stmt- > free_result (); $ stmt- > close (); "; 에코 "
Store_Result () 가 호출 되더라도 명령문 개체가 닫히지 않으면 메모리가 해제되지 않을 수 있습니다. 각 작업이 완료된 직후에 STMT를 닫는 습관을 개발하십시오.
" ; 에코 "복잡한 논리에서, 예외가 중간에 던져지면 free_result () 와 close ()가 다음과 같은지 확인해야합니다.
" ; 에코 "
노력하다 {
$ stmt = $ mysqli- > 준비 ( 'select * from users'); $ stmt- > execute (); $ stmt- > store_result (); // process data} 마지막으로 {if ( $ stmt ) { $ stmt- > free_result (); $ stmt- > close (); }} "; echo " 요약 :
mysqli_stmt :: store_result를 사용하는 핵심은 적시에 리소스를 릴리스하고, 한 번에 너무 빅 데이터를 캐시하지 않으며, 진술 객체를 닫는 좋은 습관을 개발하는 것입니다. 이러한 모범 사례를 통해 메모리 누출 문제를 효과적으로 피하고 응용 프로그램 안정성과 성능을 향상시킬 수 있습니다.
관련 태그:
mysqli_stmt