I MySQLi, sorgular, ve ilgili bellek yönetimi kullanma hakkında bazı sorular var. Burada kod sadece benim soruları netleştirmek için, bu yüzden yapılması gerektiğini biliyorum, hata denetimi için üzerine vs dökümü değilsiniz :)
Ben böyle bir şey var varsayalım:
@ $db = new mysqli($dbhost, $un, $ps, $dbname);
$query = "SELECT field1, field2 ".
"FROM table1 ".
"WHERE field1={$some_value}";
$results = $db->query($query);
while ($result = $results->fetch_object()) {
// Do something with the results
}
$query = "SELECT field1, field2 ".
"FROM table2 ".
"WHERE field1={$some_value2}";
// question 1
$results = $db->query($query);
while ($result = $results->fetch_object()) {
// Do something with the second set of results
}
// Tidy up, question 2
if ($results) {
$results->free();
}
if ($db) {
$db->close();
}
// Question 3, a general one
Yani, yukarıdaki kod yorumlarına dayanarak, benim sorular şunlardır:
I
$results
için ikinci sorgunun sonuçlarını atadığınızda, ne daha önceki sonuçlar ile ilişkili bellek olur? Ben yeni bir atamadan önce bu sonucu serbest olmalı mı?Ben sonunda temizlemek yaptığınızda 1 İlgili, sadece yeterince son sonuçlarını temizlik?
Ben bir sonuç temizlemek için deneyin ne zaman ben kapatarak, ya da her ikisi de olmalı, ben, yukarıdaki gibi onu azat edilmelidir?
mysqli::query
için PHP belgeler yakın kullanan bir örnek vardır çünkü yakın mysqli_result
({[örneğe 1 görmek parçası olmasa bile, soru sormak 3 (3)]} ). And in contrast, my normal PHP reference text uses free
(PHP and MySQL Web Development, Dördüncü Baskı, Welling ve Thomson).