လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MySQLI_RESULT :: FETT_CONCOUND Function နှင့်ထိရောက်သောအချက်အလက်များကိုဖြတ်သန်းရန် PHP ၏ iTerator Mode ကိုမည်သို့အသုံးပြုရမည်နည်း။

MySQLI_RESULT :: FETT_CONCOUND Function နှင့်ထိရောက်သောအချက်အလက်များကိုဖြတ်သန်းရန် PHP ၏ iTerator Mode ကိုမည်သို့အသုံးပြုရမည်နည်း။

gitbox 2025-09-03

PHP တွင် MySQL ဒေတာဘေ့စ်ကိုအသုံးပြုသည့်အခါ MySQLI_RESELT :: FETLE_COLUCK function ကိုအလွယ်တကူရယူနိုင်ပါသည်။ PHP ၏ iTerator ပုံစံနှင့်ပေါင်းစပ်ပြီးကျွန်ုပ်တို့သည် Datasets ကိုထိထိရောက်ရောက်ဖြတ်သန်းသွားပြီးမှတ်ဉာဏ်အသုံးပြုမှုကိုအကောင်းဆုံးဖြစ်သည်။ ဤဆောင်းပါးသည် mysqli_result :: fetch_column နှင့် iTerator ပုံစံများကို အသုံးပြု. ထိရောက်သောဒေတာဖြတ်သန်းမှုကိုမည်သို့အောင်မြင်ရမည်ကိုရှင်းပြပါလိမ့်မည်။

1 ။ ITERATE ပုံစံကဘာလဲ။

ITERATER ပုံစံသည်ဒီဇိုင်းပုံစံတစ်ခုဖြစ်ပြီးစုဆောင်းမှု၏အခြေခံကိုယ်စားပြုမှုကိုဖော်ထုတ်ခြင်းမပြုဘဲသင်စုဆောင်းမှုတစ်ခုမှတစ်ခုချင်းစီကိုတသမတ်တည်းလမ်းဖြင့်ဆက်သွယ်ရန်ခွင့်ပြုသည်။ PHP ၏ ITERATER Interface သည်အခြေခံနည်းလမ်း 4 ခုကိုထောက်ပံ့ပေးသည်။

  • လက်ရှိ () : လက်ရှိ element ကိုပြန်ပို့သည်။

  • Key () - လက်ရှိ element ၏သော့အမည်ကိုပြန်ပို့သည်။

  • နောက်တစ်ခု - : အတွင်းပိုင်းညွှန်ကြားချက်ကိုနောက် element သို့ရွှေ့ပါ။

  • ခိုင်လုံသော ဒြပ်စင်တစ်ခုရှိမရှိစစ်ဆေးပါ။

2 ။ ဒေတာရရန် mysqli_result :: fetch_column ကို သုံးပါ

PHP တွင် MySQLI_RESELT :: FETT_COLUCK function သည်သင်၏မေးမြန်းမှုရလဒ်များ၏ကော်လံတစ်ခုမှအချက်အလက်များကိုရယူရန်ခွင့်ပြုသည်။ သတ်မှတ်ထားသောကော်လံ၏တန်ဖိုးများအားလုံးပါ 0 င်သည့်ခင်းကျင်းမှုကိုပြန်လည်ရောက်စေသည်။ ၎င်း၏အသုံးပြုမှုအောက်ပါအတိုင်းဖြစ်သည် -

 <span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">query</span></span><span>(</span><span><span class="hljs-string">"SELECT id, name FROM users"</span></span><span>);
</span><span><span class="hljs-variable">$columnData</span></span><span> = </span><span><span class="hljs-variable">$result</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">fetch_column</span></span><span>(</span><span><span class="hljs-number">0</span></span><span>); </span><span><span class="hljs-comment">// ဒေတာ၏ပထမကော်လံရယူပါ</span></span><span>
</span></span>

3 ။ အဘယ်ကြောင့်ကြားဖြတ်ပုံစံကိုပေါင်းစပ်?

အချက်အလက်အားလုံးကိုရယူရန် Fetch_column ကို တိုက်ရိုက်အသုံးပြုခြင်းသည်ရလဒ်အားလုံးကိုတစ်ချိန်တည်းတွင်တင်လိမ့်မည်။ စွမ်းဆောင်ရည်တိုးတက်စေရန်အထူးသဖြင့်ဒေတာ volume သည်ကြီးမားသည့်အခါဒေတာများကို PHP ၏ iTerator Mode ဖြင့် PHP ၏ ITERATE mode ဖြင့်တဖြည်းဖြည်းတင်ဆောင်နိုင်သည်။

4 ။ ITERATOR mode ကိုအကောင်အထည်ဖော်ပါ

ITERATER ပုံစံမှတစ်ဆင့်အချက်အလက်များကိုထိရောက်စွာလုပ်ဆောင်နိုင်ရန်အတွက် ITERATER Interface ကိုအကောင်အထည်ဖော်ရန်အတန်းတစ်ခုဖန်တီးနိုင်သည်။ ဤအတန်းသည် MySQLI_RESULT အရာဝတ်ထုကို encapsult encapsult encapsater aterator မှတဆင့်ကော်လံတစ်ခုစီ၏အချက်အလက်များကိုတဖြည်းဖြည်းချင်းရယူလိမ့်မည်။

4.1 ဒေတာဘေ့စ်ကိုဖန်တီးပါ

ပထမ ဦး စွာကျွန်ုပ်တို့သည် iTerator interface ကိုအကောင်အထည်ဖော်သည့် MySQLiresultitleatiter အတန်းကိုဖန်တီးသည်။ ဤအတန်းသည် MySQLI_RESULT OFF မှဒေတာအတန်းကိုအတန်းဖြင့်ရနိုင်ပြီး Fetch_column မှပေးသောအချက်အလက်များကိုအသုံးပြုပါလိမ့်မည်။

 <span><span><span class="hljs-class"><span class="hljs-keyword">class</span></span></span><span> </span><span><span class="hljs-title">MysqliResultIterator</span></span><span> </span><span><span class="hljs-keyword">implements</span></span><span> </span><span><span class="hljs-title">Iterator</span></span><span> {
    </span><span><span class="hljs-keyword">private</span></span><span> </span><span><span class="hljs-variable">$result</span></span><span>;
    </span><span><span class="hljs-keyword">private</span></span><span> </span><span><span class="hljs-variable">$column</span></span><span>;
    </span><span><span class="hljs-keyword">private</span></span><span> </span><span><span class="hljs-variable">$position</span></span><span>;
    </span><span><span class="hljs-keyword">private</span></span><span> </span><span><span class="hljs-variable">$data</span></span><span>;

    </span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">__construct</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$result</span></span></span><span>, </span><span><span class="hljs-variable">$columnIndex</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>) {
        </span><span><span class="hljs-variable language_">$this</span></span><span>-&gt;result = </span><span><span class="hljs-variable">$result</span></span><span>;
        </span><span><span class="hljs-variable language_">$this</span></span><span>-&gt;column = </span><span><span class="hljs-variable">$columnIndex</span></span><span>;
        </span><span><span class="hljs-variable language_">$this</span></span><span>-&gt;position = </span><span><span class="hljs-number">0</span></span><span>;
        </span><span><span class="hljs-variable language_">$this</span></span><span>-&gt;data = [];
    }

    </span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">rewind</span></span><span>(</span><span><span class="hljs-params"></span></span><span>) {
        </span><span><span class="hljs-comment">// အဆိုပါကြားဖြတ်၏အနေအထားကို reset</span></span><span>
        </span><span><span class="hljs-variable language_">$this</span></span><span>-&gt;position = </span><span><span class="hljs-number">0</span></span><span>;
        </span><span><span class="hljs-variable language_">$this</span></span><span>-&gt;data = </span><span><span class="hljs-variable language_">$this</span></span><span>-&gt;result-&gt;</span><span><span class="hljs-title function_ invoke__">fetch_column</span></span><span>(</span><span><span class="hljs-variable">$this</span></span><span>-&gt;column);
    }

    </span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">current</span></span><span>(</span><span><span class="hljs-params"></span></span><span>) {
        </span><span><span class="hljs-comment">// လက်ရှိဒေတာကိုပြန်သွားပါ</span></span><span>
        </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable language_">$this</span></span><span>-&gt;data[</span><span><span class="hljs-variable language_">$this</span></span><span>-&gt;position];
    }

    </span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">key</span></span><span>(</span><span><span class="hljs-params"></span></span><span>) {
        </span><span><span class="hljs-comment">// လက်ရှိ element ၏သော့အမည်ကိုပြန်ပို့သည်</span></span><span>
        </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable language_">$this</span></span><span>-&gt;position;
    }

    </span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">next</span></span><span>(</span><span><span class="hljs-params"></span></span><span>) {
        </span><span><span class="hljs-comment">// အတွင်းညွှန်ပြစက်ကိုနောက် element သို့ရွှေ့ပါ</span></span><span>
        ++</span><span><span class="hljs-variable language_">$this</span></span><span>-&gt;position;
    }

    </span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">valid</span></span><span>(</span><span><span class="hljs-params"></span></span><span>) {
        </span><span><span class="hljs-comment">// လက်ရှိဒြပ်စင်တရားဝင်ရှိမရှိစစ်ဆေးပါ</span></span><span>
        </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable language_">$this</span></span><span>-&gt;data[</span><span><span class="hljs-variable language_">$this</span></span><span>-&gt;position]);
    }
}
</span></span>

4.2 travers ကို travers data ကိုသုံးပါ

ITERATER Class ကိုဖန်တီးပြီးသည်နှင့်၎င်းကို MySQL query query ရလဒ်များတွင်အချက်အလက်များ၏အချက်အလက်ကော်လံမှတဆင့်၎င်းကိုအလွယ်တကူအသုံးပြုနိုင်သည်။ ဒီမှာဘယ်လိုအကောင်အထည်ဖော်ရမယ်ဆိုတာဒီမှာပါ။

 <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>-&gt;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>-&gt;connect_error);
}

</span><span><span class="hljs-variable">$query</span></span><span> = </span><span><span class="hljs-string">"SELECT id, name FROM users"</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">query</span></span><span>(</span><span><span class="hljs-variable">$query</span></span><span>);

</span><span><span class="hljs-comment">// တစ် ဦး ကြားမှာဥပမာတစ်ခုဖန်တီးပါ,ရယူ "id" ကော်လံအချက်အလက်(ကော်လံအညွှန်းကိန်းဖြစ်ပါတယ်0)</span></span><span>
</span><span><span class="hljs-variable">$iterator</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">MysqliResultIterator</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>);

</span><span><span class="hljs-comment">// ကျော်နှင့် output ကိုကျော်နှင့် output ID အချက်များ</span></span><span>
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$iterator</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$key</span></span><span> =&gt; </span><span><span class="hljs-variable">$value</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ID: <span class="hljs-subst">$value</span></span></span><span>\n";
}

</span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">close</span></span><span>();
</span></span>

ဤဥပမာတွင် MySQLiresultiterature နှင့် Output မှတစ်ဆင့် ID အတန်းတစ်ခုချင်းစီကိုဖွင့်ပြခြင်းဖြင့်မေးမြန်းမှုရလဒ်ပထမ ဦး ဆုံးအချက်အလက်များ၏ပထမဆုံးကော်လံကိုဖြတ်သန်းသွားသည်။ iTerator Mode သည် Dataset တစ်ခုလုံးကိုတစ်ပြိုင်နက်တည်းမတင်ဘဲအချက်အလက်များကိုတဖြည်းဖြည်းချင်း 0 င်ရောက်ခွင့်ပြုရန်ခွင့်ပြုသည်။

5 ။ မှတ်ဥာဏ်အသုံးပြုမှုကိုအကောင်းဆုံးလုပ်ပါ

iTerator ပုံစံဖြင့်ပေါင်းစပ်ထားသော Fetter_column function သည်အချက်အလက်များကိုပိုမိုထိရောက်စွာရရှိနိုင်စေရုံသာမကအချက်အလက်အားလုံးကိုမှတ်ဉာဏ်ထဲသို့ 0 င်မယ့်အစားဒေတာခြေလှမ်းကိုလှမ်းရန်ခွင့်ပြုသည်။ ၎င်းသည်အချက်အလက်အမြောက်အများကိုကိုင်တွယ်ရန်အလွန်အသုံးဝင်သည်။ အထူးသဖြင့်မှတ်ဉာဏ်ကန့်သတ်ထားသည့်အခါ။

6 ။ အကျဉ်းချုပ်

MySQLi_Result :: Fetter_Column နှင့် PHP ITERator Mode ကိုပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည် MySQL query query ၏ထိရောက်သောဖြတ်သန်းမှုကိုအကောင်အထည်ဖော်နိုင်သည်။ ITERATH MODE သည်စုံစမ်းမှုတစ်ခုလုံးကိုမှတ်ဉာဏ်သို့မပို့ဆောင်နိုင်ရန်မှတ်ဉာဏ်စွမ်းဆောင်ရည်ကိုပေးသည်။ ဤပုံစံကိုအသုံးပြုခြင်းသည်ဒေတာအမြောက်အများကိုလုပ်ဆောင်နေစဉ်သင်၏ကုဒ်ကိုထိန်းသိမ်းခြင်းနှင့်စွမ်းဆောင်ရည်ကိုတိုးတက်စေနိုင်သည်။

  • သက်ဆိုင်သောတက်(ဂ်)များ:

    mysqli_result