• 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
خطای Fatal error: Allowed memory size of 134217728 bytes exhausted در localhost
#1
سلام دوستان
من این کد و در نوت پد در لوکال هات نوشتم
کد پی‌اچ‌پی:
<?php

 
//ini_set('memory_limit', '4000MB');
 
$myArray = Array();

 
$connection  mysqli_connect("localhost","username","pass","dbname");
 
$result mysqli_query($connection"SELECT * FROM tablename");
  
 while((
$row mysqli_num_rows($result))== null){
    
array_push($myArray,$row);
 }

 echo 
json_encode($myArray);
 
mysqli_close($connection ); 

?>
و زمانیکه اجرا میکنم با خطای زیر مواجه میشم :
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 100663304 bytes) in D:\software\UwAmp\www\page1.php on line 10
کسی میتونه راهنمایی کنه که فرم درست کد من چیه ؟
متشکرم
  پاسخ
تشکر شده توسط :
#2
احتمالاً مشکل از این قسمت هستش:
کد پی‌اچ‌پی:
while(($row mysqli_num_rows($result))== null){
    
array_push($myArray,$row);
 } 
احتمالاً حلقه در حالت "بی نهایت" قرار میگیره و هیچوفت متوقف نمیشه
بنابراین ظرفیت حافظه(stack) پی اچ پی پر میشه و خطا میده.

ظرفیت مجاز حافظه در فایل php.ini به بایت: 134217728
میزان اشغال شده به بایت: 134217728 + 100663304 = 234881032

اینکار هم اشتباه هستش:
ini_set('memory_limit', '4000MB');
حتی اگر 99999999999MB هم باشه، نهایتاً پر میشه و بازم خطا میده. چون منطق کدت کلاً غلطه
وبلاگ: Yousha.Blog.ir


کد کمتر => خطای کمتر => قابل فهمتر => خوانایی بیشتر => نگهداری بهتر
  پاسخ
تشکر شده توسط : sara147 ayoubsys Reza
#3
اگر درست نشد از توابع mysqli_real_query و mysqli_use_result استفاده کن شاید حل بشه
تا مموریت پر نشه
وبلاگ: Yousha.Blog.ir


کد کمتر => خطای کمتر => قابل فهمتر => خوانایی بیشتر => نگهداری بهتر
  پاسخ
تشکر شده توسط : ayoubsys Reza
#4
کد پی‌اچ‌پی:
while(($row mysqli_num_rows($result))== null){
    
array_push($myArray,$row);
 } 

شما نوشتی اگه تعداد رکوردهات Null بود
بیا null رو پوش کن توی آرایه !

خب این میشه حلقه بینهایت و بینهایت بار null پوش میشه توش دیگه !
این حلقه کی تموم میشه
اصلا چرا میخوای نال رو پوش کنی توی آرایه که چی بشه Big Grin

به جاش اینو بنویس مشکلت حل میشه
کد پی‌اچ‌پی:
while ($row mysqli_fetch_assoc($result)) {
    
array_push($myArray,$row);
 } 
وبلاگ rezaonline.net/blog
سفارش برنامه نویسی reza.biz
Php , mysql , postgresql , redis , Yii and ... Cool
  پاسخ
تشکر شده توسط : ayoubsys


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان