php - mysqli_fetch_assoc (sonuç) kullanırken, ne sonuç ne olur?

3 Cevap php

Böyle bir şey varsa:

$row = mysqli_fetch_assoc($result);

Does $result now have one less row in it? If I loop mysqli_fetch_assoc through all the $result, will it be empty afterwards?

3 Cevap

$result Sorunuza yanıt olarak döndürülen tüm satırları içeren bir SQL sonuç kümesi, bir referanstır. mysqli_fetch_assoc sadece sonunda NULL (listenin sonunda) işaret ederek, daha fazla satır aşağı liste sonuç kümesinin iç taşıdığındaki çağırıyor. Satırlar hala hepsi, bunlardan herhangi kaldırılmış değil: sadece liste geçilen, ve sen gibi bir şey kullanarak tekrar içlerinden çalıştırabilir mysqli_data_seek bir spesifik iç işaretçi sıfırlamak için satır.

Temizlemek için $result, size "ücretsiz" mysqli_free_result sonuç kümesini aramak gerekiyordu.

$ Sonuç resource pointer, bu eklemek, ya da ondan verileri kaldırmak mümkün değildir olmasıdır. Size bir sonuç vermek ve içten bir sonraki kayda hareket edecek. Gibi sonuç bakir.

manual page ek bilgi sağlar.

Bu çizginin yürütülmesinden sonra, $result bir kaynak işaretçi olarak kalır, ve veritabanına referans olarak $result ile daha fazla işlem için geçerli diğer fonksiyonlar tarafından kullanılabilir.

Ya unset o, ya mysqli_free_result($result); can

Bkz: http://php.net/manual/en/mysqli-result.free.php