سلام . وقت شما بخیر
وقتی کدهای زیر را اجرا میکنم حتما باید حلقه while قبلی را کامنت کنم ، به کد زیر توجه بفرمایید
$sql2 = "select fullname , id from people where id < 10";
$result2 = $mysqli -> query($sql2);
// while($row = $result2 -> fetch_assoc() ){ //The order of the columns is based on the query we specified
// echo "";
// print_r($row);
// echo "
";
// }
//mysqli_result::fetch_array -- mysqli_fetch_array —
// Fetch the next row of a result set as an associative, a numeric array, or both
while($row1 = $result2->fetch_array()){
echo ""; print_r($row1); echo ""; } echo "
"; while($row2 = $result2 -> fetch_object()){ echo "
"; print_r($row2); echo ""; }
در کد فوق در صورتی که تابع fetch_array را کامنت نکنم تابع fetch_object خروجی مورد انتظار که یک stdClass است را نشان نمیدهد .
سوالم اینست که آیا وقتی fetch_array یا توابع دیگر از کلاس result اجرا میشود مقادیر برگشتی در کلاس result بافر شده و باقی میماند؟ چون من نام متغیرها را هم عوض کردم و در حلقه دوم row2 گذاشتم اما باز هم تابع fetch_object کار نکرد.
با احترام