<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Vorderabschnitt,Hat nichts mit dem Inhalt des Artikels zu tun</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"In diesem Artikel werden Sie ausführlich vorgestellt PHP Verwendet in mysqli_stmt::store_result Best Practices。"</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">// Artikel Text Teil</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<h2>Was sind die Best Practices, die uns helfen können, die Verwendung zu verwenden? mysqli_stmt::store_result Vermeiden Sie Probleme mit dem Speicherleckprobleme?</h2>"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<p>Im Einsatz PHP von <code>mysqli "; Echo " Wenn Sie einfach eine Datenzeile für Zeile abrufen, reicht es aus Bind_result () und Fetch () aus, und Sie müssen das gesamte Ergebnissatz nicht zwischenspeichern:
" ; Echo "$ STMT = $ Mysqli -> vorbereiten ('ID auswählen, Name von Benutzern'); $ stmt -> execute (); $ stmt -> bind_result ( $ id , $ name ); while ( $ stmt -> fetch ()) {echo $ id . ' -'. $ Name ; } // no store_result wird aufgerufen, speicherspeicher $ stmt -> close (); "; Echo "
Für sehr große Tabellen werden die gesamten Ergebnissätze viel Speicher in Anspruch nehmen. Es wird empfohlen, Limit- und Offset -Paginierungsabfragen zu verwenden, und es werden nur teilweise Daten erhalten:
" ; Echo "$ page = 0; $ limit = 100; $ stmt = $ mySqli -> vorbereiten ('aus big_table limit?,?'); $ stmt -> bind_param ('ii', $ page * $ limit , $ limit ); $ stmt -> execute (); $ stmt -> store_result (); // Daten verarbeiten ... $ stmt -> free_result (); $ stmt -> close (); "; Echo "
Selbst wenn Store_Result () aufgerufen wird, wenn das Anweisungsobjekt nicht geschlossen ist, wird der Speicher möglicherweise nicht freigegeben. Entwickeln Sie die Gewohnheit, STMT unmittelbar nach Abschluss jeder Operation zu schließen.
" ; Echo "In komplexer Logik müssen Sie sicherstellen, dass Free_Result () und Close () genannt werden:
" ; Echo "
versuchen {
$ STMT = $ mysqli -> vorbereiten ('SELECT * von Benutzern'); $ stmt -> execute (); $ stmt -> store_result (); // data} endlich {if ( $ stmt ) { $ stmt -> free_result (); $ stmt -> close (); }} "; echo " Zusammenfassung:
Der Schlüssel zur Verwendung von MySQLI_STMT :: Store_Result liegt darin, Ressourcen rechtzeitig zu veröffentlichen, gleichzeitig zwischengespeichert zu werden und eine gute Angewohnheit zu entwickeln, Anweisungsobjekte zu schließen. Durch diese Best Practices können Speicherverlusteprobleme effektiv vermieden und die Anwendungsstabilität und -leistung verbessert werden.
Verwandte Tags:
mysqli_stmt