MySQL Database ကို PHP ကို အသုံးပြု. MySQLI_FETCE_APT_AST_FETCE () သည် extractive metression တစ်ခုအဖြစ်ပြန်လည်ထုတ်ယူခြင်းနည်းလမ်းများကိုပြန်လည်ရောက်ရှိစေသည့်အသုံးအများဆုံးရလဒ်များအနက်မှတစ်ခုဖြစ်သည်။ mysqli_result :: $ အရှည်များသည် MySQLI_RESEL အတန်းအစား၏ပိုင်ဆိုင်မှုဖြစ်သည်။ ရလဒ်အနေဖြင့် Row ကိုထုတ်ယူပြီးနောက်၎င်းသည်လက်ရှိလိုင်း၏နယ်ပယ်များ၏ byte အရှည်များကိုပြန်လည်ရောက်ရှိစေသည်။
နှစ် ဦး စလုံးမကြာခဏဖော်ပြလေ့မရှိချေ, အထူးသဖြင့်ဒေတာသမာဓိစစ်ဆေးနေခြင်း, binary data processing နှင့် dynamic ui rendering အတွက်အချို့သောအစွန်းရုပ်ရှင်, ဤဆောင်းပါးသည်ဤလုပ်ဆောင်ချက်နှစ်ခုကိုအနက်နှစ်ချက်ဖြင့်အသုံးပြုသောအခါလက်တွေ့ကျသောအကြံပြုချက်များကိုလေ့လာလိမ့်မည်။
MySQLI_FETT_FETCE_ASTECHOC () သည် မူလ byte အရွယ်အစားမဟုတ်ဘဲလယ်ကွင်း၏ "တန်ဖိုး" ကိုရရှိသည်။ MySQLi_Result :: $ အရှည်သည် မူလအချက်အလက်များ၏မူရင်းအချက်အလက်များ၏ byte အရှည်ကိုပြန်ပို့သည်။ ၎င်းသည် UTF-8 အက္ခရာများသို့မဟုတ် Blob အမျိုးအစားများနှင့်ဆက်ဆံရာတွင်အလွန်အရေးကြီးသည်။
$conn = new mysqli("localhost", "user", "password", "database");
$result = $conn->query("SELECT name, bio FROM users");
while ($row = $result->fetch_assoc()) {
$lengths = $result->lengths;
echo "Name: " . $row['name'] . " (Length: " . $lengths[0] . " bytes)\n";
echo "Bio: " . $row['bio'] . " (Length: " . $lengths[1] . " bytes)\n";
}
ဤနည်းစနစ်သည်အကြောင်းအရာအရှည်ကိုအစာကြေများပို့ခြင်း, မှတ်တမ်းဒေတာစိစစ်ရေးသို့မဟုတ်အကြောင်းအရာအရွယ်အစားကိုကန့်သတ်ခြင်းကဲ့သို့သောတိကျမှန်ကန်သောထိန်းချုပ်ရန်လိုအပ်သည်။
တစ်ခါတစ်ရံရှေ့အဆုံးမှထုတ်လွှင့်သောအချက်အလက်များသည် encoding ပြ problems နာများသို့မဟုတ်သိုလှောင်မှုအခက်အခဲများကြောင့်ဒေတာဘေ့စ်ကဖြတ်နိုင်သည်။ $ resent->> အရှည်လ်သည် မျှော်လင့်ချက်များနှင့်အမြင့်ဆုံးအရှည်ကန့်သတ်ချက်နှင့်ပေါင်းစပ်ခြင်းရှိ,
ဥပမာအားဖြင့်, ဇီဝ လယ်ကွင်း၏အများဆုံးအရှည်သည် 65535 Bytes ဖြစ်ပြီး $ အရှည်သည် 65535 နှင့်တူညီသည်ဆိုပါကကျွန်ုပ်သည် 65535 နှင့်တူညီသည်။
တရုတ်, ဂျပန်နှင့်ကိုရီးယားဇာတ်ကောင်များပါ 0 င်သောစာသားအကြောင်းအရာများသို့မဟုတ်အချက်အလက်များအတွက်ဇာတ်ကောင်နှင့် bytes အရေအတွက်မှာအလွန်ကွဲပြားနိုင်သည်။ strlen ကိုပေါင်းစပ်ခြင်း ($ Row ['Field']) ကို $ ရလဒ်ဖြင့်> အရှည်များ နှင့်အတူ> အရှည် encoding ဖြန့်ဖြူးခြင်းကိုအကဲဖြတ်နိုင်သည်။
$charLength = strlen($row['bio']);
$byteLength = $lengths[1];
if ($byteLength / $charLength > 2) {
echo "ဒီကွက်လပ်မှာ Multibyte ဇာတ်ကောင်တွေပါနိုင်တယ်,အကြံပြု transcoding သို့မဟုတ် compression。";
}
PDF များသို့မဟုတ် binary files များ (PDFS, PDF များကဲ့သို့သောစာသားများ သို့မဟုတ် binary files များကိုပြန်လည်တည်ဆောက်သည့်အခါ apis အဆောက်အအုံကိုတည်ဆောက်ရာတွင်ပါသည့်အခါ, $ ရလဒ်နှင့်အတူပေါင်းစပ်, သင် header ကို dvonatically set up နိုင်ပါတယ်။
header("Content-Type: text/plain");
header("Content-Length: " . $lengths[0]);
echo $row['document_text'];
https://gitbox.net/api/api/v1/p1/docations/123/download နှင့်ဆင်တူသော file download interface ကိုတည်ဆောက်သည့်အခါ၎င်းသည်အထူးသဖြင့်အရေးကြီးသည်။
ဒေတာဘေ့စ်မှ carbled သို့မဟုတ်ပျောက်ဆုံးနေသောဇာတ်ကောင်များသို့ပြန်လာသည့်အချက်အလက်များကိုသင်မေးမြန်းသောအခါပထမအဆင့်မှာ strlen (and +) ကိုနှိုင်းယှဉ်ခြင်း (and just ) များနှင့်မတူပါ။
ဤနည်းလမ်းသည်မျက်မမြင်ပုံနှိပ်သည့်ကြိုးများထက်ပိုမိုထိရောက်စေသည်။
MySQLi_Result :: $ အရှည်သည် နေ့စဉ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်မကြာခဏအသုံးပြုသောကိရိယာတစ်ခုမဟုတ်ပါ ။ အထူးသဖြင့် coding sensitive, content trunction ကိုအထိခိုက်မခံခြင်း,
ဤနည်းစနစ်များမှတဆင့်၎င်းသည် PHP နှင့် MySQL အချက်အလက်အပြန်အလှန်ဆက်သွယ်မှုကိုစိတ် 0 င်စားမှုကိုတိုးတက်စေရုံသာမကနောက်ဆက်တွဲလည်ပတ်မှုတိုးချဲ့ခြင်းနှင့်စွမ်းဆောင်ရည်အကောင်းဆုံးအတွက်အုတ်မြစ်ချနိုင်သည်။