PHP Development တွင်ကျွန်ုပ်တို့သည်ဖိုင်အချို့သို့မဟုတ်ဒေတာလွှဲပြောင်းမှုများပြုလုပ်ရန်လိုအပ်သည့်အခါများသောအားဖြင့်ကျွန်ုပ်တို့သည်ကြီးမားသောဖိုင်များကိုမည်သို့ထိရောက်စွာသိမ်းဆည်းရန်သို့မဟုတ်လွှဲပြောင်းရန်မည်သို့ပြုလုပ်လေ့ရှိသည်။ အထူးသဖြင့် MySQL databases များကို အသုံးပြု. ရိုးရာထည့်သွင်းမှုသို့မဟုတ်နောက်ဆုံးသတင်းများကိုအသုံးပြုသောအခါအစဉ်အလာအလိုက်ထည့်သွင်းခြင်းသို့မဟုတ် update operations သည်ကြီးမားသောဖိုင်အချက်အလက်များကိုထိရောက်စွာလုပ်ဆောင်နိုင်မည်မဟုတ်ပါ။ ဤစိန်ခေါ်မှုကိုဖြေရှင်းရန် MySQLI_STMT :: Send_long_data သည် developer များကို deveries ဖိုင်များကိုဒေတာဘေ့စ်များကိုစီးဆင်းစေရန်ကူညီနိုင်သည့်ထိရောက်သောဖြေရှင်းချက်ကိုပေးသည်။
MySQLI_STMT :: Send_long_Data သည် PHP MySQLI extension တွင်ကြီးမားသောဒေတာများကိုထုတ်လွှင့်ရန်အသုံးပြုသောနည်းလမ်းဖြစ်သည်။ ဖိုင်တစ်ခုလုံးကိုမှတ်ဉာဏ်ထဲမ 0 င်ဘဲဖွင့်လှစ်ခြင်းမရှိဘဲကွပ်မျက်ခံရချိန်တွင် MySQL ဒေတာဘေ့စ်ကို MySQL ဒေတာဘေ့စ်သို့လွှဲပြောင်းရန်ခွင့်ပြုရန်ခွင့်ပြုသည်။ ၎င်းသည်မှတ်ဥာဏ်လျှံသို့မဟုတ်စွမ်းဆောင်ရည်မြှင့်တင်မှုများကိုရှောင်ရှားနိုင်ပြီးကြီးမားသောဖိုင်များကိုကိုင်တွယ်သည့်အခါအလွန်လက်တွေ့ကျသောလုပ်ဆောင်မှုဖြစ်သည်။
အွန်လိုင်းဖိုင်သိုလှောင်မှုစနစ်များ (သို့) ဖိုင်စီမံခန့်ခွဲမှုစနစ်များကဲ့သို့သော application အချို့တွင်သုံးစွဲသူများမှတင်ထားသောဖိုင်များသည်အလွန်ကြီးမားနိုင်သည်။ ဖိုင်အချက်အလက်များကိုမှတ်ဉာဏ်သို့တိုက်ရိုက်ဖတ်ခြင်းနှင့်၎င်းကိုသိမ်းဆည်းခြင်းဒေတာဘေ့စ်သို့ကယ်တင်ခြင်းသည်မှတ်ဥာဏ်ဖိအားကိုဖြစ်ပေါ်စေပြီး PHP scripts များကိုအချိန်မီဖြစ်စေနိုင်သည်။ ဤကိစ္စတွင် MySQLI_STMT :: Send_long_Data သည် ဖိုင်တစ်ခုလုံးကိုဒေတာဘေ့စ်သို့တဖြည်းဖြည်းပို့နိုင်ပြီးဖိုင်တစ်ခုလုံးကိုမှတ်ဉာဏ်သို့မပို့စေခြင်း။
Scienti Signe Support : အသုံးပြုသူများအသုံးပြုသူများသည် image files များကို upload လုပ်သည့်အွန်လိုင်းရုပ်ပုံစီမံခန့်ခွဲမှုပလက်ဖောင်းတစ်ခုဖြစ်သည်။ သိုလှောင်မှုထိရောက်မှုကိုတိုးတက်စေရန်အတွက်ပလက်ဖောင်းသည်ရုပ်ပုံများကို MySQL ဒေတာဘေ့စ်ရှိ binary format ဖြင့်သိမ်းဆည်းရန်ရွေးချယ်သည်။ MySQLI_STMT :: Send_long_data ကို အသုံးပြု. တင်ထားသောပုံတစ်ခုစီသည်ဖိုင်တစ်ခုလုံးကိုဖိုင်တစ်ခုလုံးကိုမတင်ဘဲရွေ့လျားခြင်းမရှိဘဲပစ္စည်းများကိုမှတ်ဉာဏ်ထဲသို့ပြောင်းရွှေ့ခြင်းဖြင့်ရွေ့လျားခြင်း,
အချို့သော application များသည်ဒေတာဘေ့စ်သို့မှတ်တမ်းဒေတာအမြောက်အများသို့မဟုတ်စာသားဒေတာအမြောက်အများလိုအပ်သည်။ ဥပမာအားဖြင့် log Management System သည် Segments တွင် MySQL သို့သိမ်းဆည်းရန်လိုအပ်သည့် GB log files များကိုထုတ်ပေးသည်။ ဤကိစ္စတွင် log file အပိုင်းအစကို MySQLI_STMTMT :: Send_long_data ကို သုံး. ဒေတာဘေ့စ်သို့တင်နိုင်သည်။
ဇာတ်လမ်းဥပမာ - မှတ်တမ်းခွဲခြမ်းစိတ်ဖြာခြင်းစနစ်သည်စနစ်မှထုတ်လုပ်သောမှတ်တမ်းဖိုင်အမျိုးမျိုးကိုစုဆောင်းပြီးသိုလှောင်ထားသည်။ မှတ်တမ်းဖိုင်သည်ကြီးမားပြီးဖိုင်တစ်ခုလုံးကိုအချိန်တိုင်း load လုပ်ပါက၎င်းသည်ဆာဗာစွမ်းဆောင်ရည်အပေါ်အလေးအနက်သက်ရောက်မှုရှိလိမ့်မည်။ MySQLI_STMT :: Send_long_data ကို အသုံးပြု. log files များကိုတဖြည်းဖြည်းတင်ရန်စနစ်များကိုဖြန့်ဖြူးရန်စနစ်ကိုပိုမိုထိရောက်စွာတည်ငြိမ်စေနိုင်သည်။
ကြီးမားသောဖိုင်များ, ဗွီဒီယိုနှင့်အသံဖိုင်များသည်အထူးသဖြင့်မာလ်တီမီဒီယာပလက်ဖောင်းများတွင်များသောအားဖြင့်ကြီးမားသောဖိုင်အမျိုးအစားများဖြစ်သောဗီဒီယိုများ, အသံဖိုင်များလည်းဖြစ်သည်။ ဗွီဒီယိုစီးဆင်းမှုများသို့မဟုတ်အသံလွှင့်ကျက်သိုလှောင်မှုအတွက်၎င်းကိုတစ်ချိန်တည်းတွင်၎င်းတို့ကိုမှတ်ဉာဏ်ထဲသို့သယ်ဆောင်မည့်အစားသူတို့ကို streaming လုပ်ခြင်းဖြင့်သိမ်းဆည်းရန်ရိုးရာဖြစ်သည်။
ဇာတ်လမ်းဥပမာ - အသုံးပြုသူမှ database သို့တင်ထားသောဗွီဒီယိုဖိုင်များကိုသိမ်းဆည်းရန်ဗီဒီယိုဝက်ဘ်ဆိုက်ဒ်ဝက်ဘ်ဆိုက်တစ်ခုလိုအပ်သည်။ MySQLI_STMT :: Send_long_Data တို့ဖြင့်ဗီဒီယိုဖိုင်များကိုဒေတာဘေ့စ်သို့ပို့ခြင်း, ဆာဗာကိုမှတ်ဉာဏ်မလုံလောက်မှုမှတားဆီးနိုင်သည်။
အချို့သော applications များတွင်ဖိုင်များအပြင် binary data များအပြင် (ဥပမာပုံရိပ်များ, အသံ, ဗွီဒီယိုစသည်ဖြင့်) အမြောက်အများကိုလွှဲပြောင်းရန်လိုအပ်သည်။ ဤကြီးမားသောအရာဝတ်ထုများကိုအသုံးပြုသူများကသို့မဟုတ် applications များမှထုတ်ပေးနိုင်သည်။ MySQLI_STMT :: Send_long_Data သည် ဤကြီးမားသောအရာဝတ်ထုများကိုဒေတာဘေ့စ်ထဲသို့ထိရောက်စွာသိမ်းဆည်းထားနိုင်သည်။
Explray Exament : သုံးစွဲသူအသုံးပြုသူများသည်အီလက်ထရွန်နစ်စာအုပ်များ (PDF, EPUB, စသည်တို့) ကိုအသုံးပြုသောအီလက်ထရောနစ်ဗားရှင်းများတင်သည့်အီလက်ထရောနစ်စာကြည့်တိုက်စီမံခန့်ခွဲမှုစနစ်။ MySQLI_STMT :: Send_long_data မှတဆင့်စနစ်သည်ဖိုင်တစ်ခုလုံးကိုဖိုင်တစ်ခုလုံးကိုမှတ်ဉာဏ်ထဲသို့မတင်ဘဲ တင်. တင်. တင်. တင်ထားသောတင်ပါးငယ်မှုကိုချောမွေ့စေနိုင်သည်။
MySQLI_STMT :: Send_long_data ကိုသုံးပြီး MySQL Preprocessing ထုတ်ပြန်ချက်များနှင့်အတူအသုံးပြုရန်လိုအပ်သည်။ ဤတွင်ဖိုင်တွဲများကို upload လုပ်ရန်ဤလုပ်ဆောင်မှုကိုမည်သို့အသုံးပြုရမည်ကိုပြသည့်ပုံမှန်ကုဒ်ရေးဆွဲခြင်းဥပမာတစ်ခုဖြစ်သည်။
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$mysqli</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">mysqli</span></span><span>(</span><span><span class="hljs-string">"localhost"</span></span><span>, </span><span><span class="hljs-string">"username"</span></span><span>, </span><span><span class="hljs-string">"password"</span></span><span>, </span><span><span class="hljs-string">"database"</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$mysqli</span></span><span>->connect_error) {
</span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"Connection failed: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>->connect_error);
}
</span><span><span class="hljs-comment">// ဒေတာထည့်သွင်းရန်အဆင်သင့် SQL အသေအချာပေြာဆိုချက်</span></span><span>
</span><span><span class="hljs-variable">$stmt</span></span><span> = </span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">prepare</span></span><span>(</span><span><span class="hljs-string">"INSERT INTO files (name, data) VALUES (?, ?)"</span></span><span>);
</span><span><span class="hljs-comment">// ဖိုင်လမ်းကြောင်းနှင့် Open File Stream</span></span><span>
</span><span><span class="hljs-variable">$filePath</span></span><span> = </span><span><span class="hljs-string">"large_file.zip"</span></span><span>;
</span><span><span class="hljs-variable">$file</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fopen</span></span><span>(</span><span><span class="hljs-variable">$filePath</span></span><span>, </span><span><span class="hljs-string">"rb"</span></span><span>);
</span><span><span class="hljs-comment">// parameters တွေကိုချည်ထား</span></span><span>
</span><span><span class="hljs-variable">$stmt</span></span><span>-></span><span><span class="hljs-title function_ invoke__">bind_param</span></span><span>(</span><span><span class="hljs-string">"s"</span></span><span>, </span><span><span class="hljs-variable">$name</span></span><span>);
</span><span><span class="hljs-variable">$name</span></span><span> = </span><span><span class="hljs-title function_ invoke__">basename</span></span><span>(</span><span><span class="hljs-variable">$filePath</span></span><span>);
</span><span><span class="hljs-comment">// segments အတွက်ဖိုင်ဒေတာပေးပို့ပါ</span></span><span>
</span><span><span class="hljs-variable">$stmt</span></span><span>-></span><span><span class="hljs-title function_ invoke__">send_long_data</span></span><span>(</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-title function_ invoke__">fread</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>, </span><span><span class="hljs-number">1024</span></span><span>*</span><span><span class="hljs-number">1024</span></span><span>)); </span><span><span class="hljs-comment">// တစ်ခုချင်းစီကိုအချိန် 1MB အချက်များ</span></span><span>
</span><span><span class="hljs-comment">// 执行အသေအချာပေြာဆိုချက်</span></span><span>
</span><span><span class="hljs-variable">$stmt</span></span><span>-></span><span><span class="hljs-title function_ invoke__">execute</span></span><span>();
</span><span><span class="hljs-comment">// 关闭文件和အချက်များ库连接</span></span><span>
</span><span><span class="hljs-title function_ invoke__">fclose</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>);
</span><span><span class="hljs-variable">$stmt</span></span><span>-></span><span><span class="hljs-title function_ invoke__">close</span></span><span>();
</span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">close</span></span><span>();
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
ဤဥပမာတွင် file ၏ contents ကိုဖတ်ရန် Force ကို အသုံးပြု. Send_long_data သည် file data ကို database သို့ပို့သည်။ ထုတ်ပြန်ချက်များကိုအကောင်အထည်ဖော်သည့်အခါဖိုင်ဒေတာကိုတစ်ချိန်တည်းတွင်မှတ်ဉာဏ်ထဲသို့မထည့်သွင်းနိုင်သော်လည်း MySQL သို့ MySQL သို့လွှဲပြောင်းခြင်း,
ဒေတာဘေ့စလယ်ကွင်းအမျိုးအစား - ဒေတာဘေ့စ်စားပွဲတွင်ကွင်းဆင်းပုံစံသည် Blob သို့မဟုတ် DataBblob ဖြစ်အောင်လုပ်ပါ။
လွှဲပြောင်းခြင်းကန့်သတ်ချက်များ - Send_long_data သည် ကြီးမားသောဖိုင်များကိုထိရောက်စွာလွှဲပြောင်းနိုင်သော်လည်း PHP configurations (ဥပမာ upload_max_filesize နှင့် Post_Max_Size ) တွင်ကန့်သတ်ချက်များကိုတင်ခြင်းကိုအာရုံစိုက်သင့်သည်။ ဤ configurations များကိုအမှန်တကယ်လိုအပ်ချက်များနှင့်အညီချိန်ညှိရန်လိုအပ်သည်။
စွမ်းဆောင်ရည်ညှိ - ဖိုင်ကြီးများကိုပြုပြင်သည့်အခါပြောင်းလဲထားသောဒေတာများ၏ပိတ်ပင်တားဆီးမှုအရွယ်အစားကိုချိန်ညှိခြင်းဖြင့်ဆာဗာ၏စွမ်းဆောင်ရည်နှင့်အညီပြောင်းလဲနိုင်သည်။
MySQLI_STMT :: Send_long_data သည်အလွန်လက်တွေ့ကျသောလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ segments များရှိဖိုင်အချက်အလက်များကိုလွှဲပြောင်းခြင်းအားဖြင့် developer များသည်မှတ်ဉာဏ်ပြည့်လျှောလျှောနှင့်စွမ်းဆောင်ရည်မြှင့်တင်ခြင်းကိုရှောင်ရှားရန်နှင့်စနစ်တည်ငြိမ်မှုနှင့်ထိရောက်မှုကိုတိုးတက်စေရန်နှင့်စနစ်တည်ငြိမ်မှုနှင့်ထိရောက်မှုကိုတိုးတက်စေသည်။ Send_long_Data သည် ဖိုင်တင်ခြင်း, မှတ်တမ်းသိုလှောင်မှုသို့မဟုတ် multimedia data data procession တွင်အရေးပါသောအခန်းကဏ် play မှပါ 0 င်နိုင်သည်။ ထို့ကြောင့်ကြီးမားသောဖိုင်အမျိုးအစားအပြောင်းအလဲကြီးမားသော application များဖွံ့ဖြိုးတိုးတက်လာသောအခါဤလုပ်ဆောင်မှုကိုဆင်ခြင်တုံတရားအသုံးပြုခြင်းသည် data transmission process ကိုများစွာကောင်းမွန်စေသည်။