• 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
ذخیره سازی آرایه mysql در فایل
#1
سلام
من یه کوئری سلکت دارم که میخوام آرایه برگشتی را توی یه فایل ذخیره کنم و بعد یه کد بنویسم که اگه فایل وجود داشت به جای اجرای کوئری , محتوای فایل رو به صورت آرایه برگردانه.

1-شرط وجود فایل رو بلدم
2- کوئری من :
کد پی‌اچ‌پی:
$qcba=mysql_query("select * from config where id='1'");
$qcb=mysql_fetch_array($qcba); 

ممنون میشم یکی از اساتید کمک کنه.
  پاسخ
تشکر شده توسط :
#2
چرا میخوایی این کارو بکنی؟ کش؟
هر چیزی که در جستن آنی آنی...
غایب
  پاسخ
تشکر شده توسط : mihandesign
#3
اره دقیقا چون تاثیر زیادی توی سرعت داره
  پاسخ
تشکر شده توسط :
#4
خب این کارتون اشتباهه.
در درجه اول لازمه بدونید خود mysql کوئری ها رو کش میکنه. این موضوع فقط مربوط به کوئری هاست، بحث کانکشن، ارسال درخواست و... به دیتابیس جداست.
در درجه دوم پیشنهاد میکنم در این مورد از memcached، apc و... استفاده کنید.
گوگل میتونه کمکتون کنه، موفق باشید.
هر چیزی که در جستن آنی آنی...
غایب
  پاسخ
تشکر شده توسط : sara147
#5
پروژه من یه وبلاگ دهی هست که فایل های زیادی براش نوشته شده و همه با mysql_connact و mysql_query نوشته شدن و نمیشه به memchach تبدیلشون کرد.
توی خیلی از کوئری ها من با استفاده از فایل تونستم کش کنم و سرعت رو کاهش دادم ولی این کوئری چون توی یه فایلی هست که توی فایل های زیادی اینکلود شده نتونستم اون کار رو کنم.
  پاسخ
تشکر شده توسط :
#6
من نگفتم حتما از memchach استفاده کنید، روش های زیادی وجود داره اما اینکه خودتون بخوایید براش کش بنویسید اشتباهه.
هر چیزی که در جستن آنی آنی...
غایب
  پاسخ
تشکر شده توسط :
#7
یه چیزی نوشتم ولی فکر کنم میشد جوری نوشت که کوتاه تر باشه.
کد پی‌اچ‌پی:
function enbug($txt){
    
$txt str_replace("amp;","",$txt);
    
$txt str_replace(" "," ",$txt);
    
$txt str_replace("'","'",$txt);
    
$txt str_replace('"','"',$txt);
    
$txt str_replace('&amp;lt;','<',$txt);
    
$txt str_replace('&amp;gt;','>',$txt);
    
$txt str_replace("&nbsp;"," ",$txt);
    
$txt str_replace("'","'",$txt);
    
$txt str_replace('&quot;','"',$txt);
    
$txt str_replace('<','<',$txt);
    
$txt str_replace('>','>',$txt);
    
$txt preg_replace('/<textarea(.*?)>/','<textarea$1>',$txt);  
    
$txt=str_replace("</textarea>","</textarea>",$txt);
    return 
$txt;
}
$cdir="cache/";
$fi='.vb';
$fl=$cdir."config".$fi;
if(!
is_file($fl)) {fclose(fopen($fl,"x"));}
if(!
filesize($fl)){
$fh fopen($fl'w');fwrite($fh,""); fclose($fh);
$insert ""$insert2 "";

$qcbamysql_query("select * from config where id='1'");
    while(@
$qcb mysql_fetch_array($qcba)) {

     
$insert2 .= "$qcb[id]<1>$qcb[stitle]<1>$qcb[sname]<1>$qcb[surl]<1>$qcb[stag]<1>$qcb[sdesc]<1>$qcb[skeys]<1>$qcb[maxblog]<1>$qcb[maxemail]<1>$qcb[badwords]<1>$qcb[intex]<1>$qcb[indtex]<1>$qcb[badsc]<1>$qcb[hbg1]<1>$qcb[hbg2]<1>$qcb[fpage]<1>$qcb[frules]<1>$qcb[tads]<1>$qcb[dads]<1>$qcb[lads]<1>$qcb[rads]<1>$qcb[bads]<1>$qcb[commentads]<1>";
    }



$insert2 $insert2.'<4>';
$fh fopen($fl'w');
fwrite($fh$insert2);
fclose($fh);
}else{
$fh fopen($fl'r+');
if(
filesize($fl)){$cts fread($fhfilesize($fl));}else{$cts=0;}
fclose($fh);
$insert6=explode("<1>",$cts);

$qcb[id] = enbug($insert6[0]);
$qcb[stitle] = enbug($insert6[1]);
$qcb[sname] = enbug($insert6[2]);
$qcb[surl] = enbug($insert6[3]);
$qcb[stag] = enbug($insert6[4]);
$qcb[sdesc] = enbug($insert6[5]);
$qcb[skeys] = enbug($insert6[6]);
$qcb[maxblog] = enbug($insert6[7]);
$qcb[maxemail] = enbug($insert6[8]);
$qcb[badwords] = enbug($insert6[9]);
$qcb[intex] = enbug($insert6[10]);
$qcb[indtex] = enbug($insert6[11]);
$qcb[badsc] = enbug($insert6[12]);
$qcb[hbg1] = enbug($insert6[13]);
$qcb[hbg2] = enbug($insert6[14]);
$qcb[fpage] = enbug($insert6[15]);
$qcb[frules] = enbug($insert6[16]);
$qcb[tads] = enbug($insert6[17]);
$qcb[dads] = enbug($insert6[18]);
$qcb[lads] = enbug($insert6[19]);
$qcb[rads] = enbug($insert6[20]);
$qcb[bads] = enbug($insert6[21]);
$qcb[commentads] = enbug($insert6[22]);

echo 
"aa";
$insert5++;



خب اول چک میکنه
اگه فایل config.vb توی پوشه cache نبود کوئری رو اجرا میکنه و فایل رو میسازه و محتویات جدول رو با جدا کننده <1> مینویسه داخل فایل
اگه فایل وجود داشت محتویات رو اکسپلود میکنه و میریزه داخل آرایه

خروجی هر دو هم مثل هم هست ولی سرعت فایلینگ بیشتره.

هر موقع هم تغیری توی جدول دادیم فایل config.vb رو پاک میکنیم.
Smile
خواستن توانستن است Cool
  پاسخ
تشکر شده توسط :


پرش به انجمن:


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