လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> mysqli_result :: mysqli_fetchet_assoc ကိုသုံးရန်အတွက်ဒေါ်လာအရှည်များ

mysqli_result :: mysqli_fetchet_assoc ကိုသုံးရန်အတွက်ဒေါ်လာအရှည်များ

gitbox 2025-05-29

MySQL Database ကို PHP ကို ​​အသုံးပြု. MySQLI_FETCE_APT_AST_FETCE () သည် extractive metression တစ်ခုအဖြစ်ပြန်လည်ထုတ်ယူခြင်းနည်းလမ်းများကိုပြန်လည်ရောက်ရှိစေသည့်အသုံးအများဆုံးရလဒ်များအနက်မှတစ်ခုဖြစ်သည်။ mysqli_result :: $ အရှည်များသည် MySQLI_RESEL အတန်းအစား၏ပိုင်ဆိုင်မှုဖြစ်သည်။ ရလဒ်အနေဖြင့် Row ကိုထုတ်ယူပြီးနောက်၎င်းသည်လက်ရှိလိုင်း၏နယ်ပယ်များ၏ byte အရှည်များကိုပြန်လည်ရောက်ရှိစေသည်။

နှစ် ဦး စလုံးမကြာခဏဖော်ပြလေ့မရှိချေ, အထူးသဖြင့်ဒေတာသမာဓိစစ်ဆေးနေခြင်း, binary data processing နှင့် dynamic ui rendering အတွက်အချို့သောအစွန်းရုပ်ရှင်, ဤဆောင်းပါးသည်ဤလုပ်ဆောင်ချက်နှစ်ခုကိုအနက်နှစ်ချက်ဖြင့်အသုံးပြုသောအခါလက်တွေ့ကျသောအကြံပြုချက်များကိုလေ့လာလိမ့်မည်။

1 ။ မျှော်လင့်ထားသည့်အရှည် VS Field ၏အမှန်တကယ်အရှည်ကိုရယူပါ

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";
}

ဤနည်းစနစ်သည်အကြောင်းအရာအရှည်ကိုအစာကြေများပို့ခြင်း, မှတ်တမ်းဒေတာစိစစ်ရေးသို့မဟုတ်အကြောင်းအရာအရွယ်အစားကိုကန့်သတ်ခြင်းကဲ့သို့သောတိကျမှန်ကန်သောထိန်းချုပ်ရန်လိုအပ်သည်။

2 ။ အကြောင်းအရာကိုစစ်ဆေးခြင်းသို့မဟုတ် encoding ခြွင်းချက်များကိုစစ်ဆေးပါ

တစ်ခါတစ်ရံရှေ့အဆုံးမှထုတ်လွှင့်သောအချက်အလက်များသည် encoding ပြ problems နာများသို့မဟုတ်သိုလှောင်မှုအခက်အခဲများကြောင့်ဒေတာဘေ့စ်ကဖြတ်နိုင်သည်။ $ resent->> အရှည်လ်သည် မျှော်လင့်ချက်များနှင့်အမြင့်ဆုံးအရှည်ကန့်သတ်ချက်နှင့်ပေါင်းစပ်ခြင်းရှိ,

ဥပမာအားဖြင့်, ဇီဝ လယ်ကွင်း၏အများဆုံးအရှည်သည် 65535 Bytes ဖြစ်ပြီး $ အရှည်သည် 65535 နှင့်တူညီသည်ဆိုပါကကျွန်ုပ်သည် 65535 နှင့်တူညီသည်။

3 ။ ကြွယ်ဝသောစာသားသို့မဟုတ်ဘာသာစကားမျိုးစုံအကြောင်းအရာနှင့်အတူလယ်ကွင်းဒေတာကိုခွဲခြမ်းစိတ်ဖြာ

တရုတ်, ဂျပန်နှင့်ကိုရီးယားဇာတ်ကောင်များပါ 0 င်သောစာသားအကြောင်းအရာများသို့မဟုတ်အချက်အလက်များအတွက်ဇာတ်ကောင်နှင့် bytes အရေအတွက်မှာအလွန်ကွဲပြားနိုင်သည်။ strlen ကိုပေါင်းစပ်ခြင်း ($ Row ['Field']) ကို $ ရလဒ်ဖြင့်> အရှည်များ နှင့်အတူ> အရှည် encoding ဖြန့်ဖြူးခြင်းကိုအကဲဖြတ်နိုင်သည်။

 $charLength = strlen($row['bio']);
$byteLength = $lengths[1];
if ($byteLength / $charLength > 2) {
    echo "ဒီကွက်လပ်မှာ Multibyte ဇာတ်ကောင်တွေပါနိုင်တယ်,အကြံပြု transcoding သို့မဟုတ် compression。";
}

4 ။ Download သို့မဟုတ် API ပြန်လာသည့်အကြောင်းအရာအတွက်တိကျသောခေါင်းစဉ်တစ်ခုထုတ်ပေးပါ

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 ကိုတည်ဆောက်သည့်အခါ၎င်းသည်အထူးသဖြင့်အရေးကြီးသည်။

5 ။ ဒေတာချွင်းချက်ပြန်ပို့ရန်ဒေတာဘေ့စ်ကို debug

ဒေတာဘေ့စ်မှ carbled သို့မဟုတ်ပျောက်ဆုံးနေသောဇာတ်ကောင်များသို့ပြန်လာသည့်အချက်အလက်များကိုသင်မေးမြန်းသောအခါပထမအဆင့်မှာ strlen (and +) ကိုနှိုင်းယှဉ်ခြင်း (and just ) များနှင့်မတူပါ။

ဤနည်းလမ်းသည်မျက်မမြင်ပုံနှိပ်သည့်ကြိုးများထက်ပိုမိုထိရောက်စေသည်။

အကျဉ်းချုပ်

MySQLi_Result :: $ အရှည်သည် နေ့စဉ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်မကြာခဏအသုံးပြုသောကိရိယာတစ်ခုမဟုတ်ပါ အထူးသဖြင့် coding sensitive, content trunction ကိုအထိခိုက်မခံခြင်း,

ဤနည်းစနစ်များမှတဆင့်၎င်းသည် PHP နှင့် MySQL အချက်အလက်အပြန်အလှန်ဆက်သွယ်မှုကိုစိတ် 0 င်စားမှုကိုတိုးတက်စေရုံသာမကနောက်ဆက်တွဲလည်ပတ်မှုတိုးချဲ့ခြင်းနှင့်စွမ်းဆောင်ရည်အကောင်းဆုံးအတွက်အုတ်မြစ်ချနိုင်သည်။