PHP တွင် MySQLI extension သည် MySQL ဒေတာဘေ့စ်နှင့်အပြန်အလှန်ဆက်သွယ်မှုအတွက်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။ ဒေတာအမြောက်အများကိုကျွန်ုပ်တို့လုပ်ဆောင်သည့်အခါဆောင်းပါးများသည်အချက်အလက်အားလုံးကိုတစ်ပြိုင်နက်တည်းတင်ခြင်းကိုရှောင်ရှားရန်အလွန်များသောအားဖြင့်ထိရောက်သောနည်းစနစ်တစ်ခုဖြစ်သည်။ ယနေ့ကျွန်ုပ်တို့သည် Pagination query function ကိုအကောင်အထည်ဖော်ရန် MySQLI :: stmt_init function ကိုမည်သို့အသုံးပြုရမည်ကိုလေ့လာမည်။
Pagination Query သည်အချက်အလက်အချို့နှင့်အညီအချက်အလက်များကိုအသုတ်တွင်ဖော်ပြခြင်းနှင့်စာမျက်နှာတစ်ခုချင်းစီကိုစာမျက်နှာတစ်ခုချင်းစီကိုပြသခြင်း, Paging မှတစ်ဆင့်ကျွန်ုပ်တို့သည်ဒေတာပြုပြင်ထုတ်လုပ်မှု၏စွမ်းဆောင်ရည်ကိုတိုးတက်အောင်မလုပ်နိုင်ပါ။
MySQLI :: stmt_init function ကို MySQLI_STMT အရာဝတ်ထုအသစ်တစ်ခုကိုစတင်ရန်အသုံးပြုသည်။ ထို့နောက် preprocessing ထုတ်ပြန်ချက်များကိုအရာဝတ်ထုမှတဆင့်ကွပ်မျက်နိုင်သည်။ Preprocessing ထုတ်ပြန်ချက်များသည် SQL Injection ၏အန္တရာယ်ကိုရှောင်ရှားနေစဉ်စုံစမ်းမှုစွမ်းအားစွမ်းဆောင်ရည်ကိုတိုးတက်စေနိုင်သည်။
ကျွန်ုပ်တို့တွင်အသုံးပြုသူ၏အချက်အလက်အမြောက်အများပါ 0 င်သော အသုံးပြုသူများ စားပွဲပေါ်မှာရှိပြီးဆိုပါစို့။ ပထမ ဦး စွာကျွန်ုပ်တို့သည်စုစုပေါင်းအချက်အလက်အရေအတွက်ကိုတွက်ချက်ရန်လိုသည်, ထို့နောက်စာမျက်နှာနံပါတ်ပေါ်မူတည်ပြီးသောစုံစမ်းမှု၏ offset ကိုတွက်ချက်ရန်နှင့်စာမျက်နှာတစ်ခုစီတွင်ပြထားတဲ့အပိုင်းအစအရေအတွက်ကိုတွက်ချက်ပါ။ အောက်ဖော်ပြပါများသည်အခငြ့်အရေးစုံစမ်းမှုကိုအကောင်အထည်ဖော်ရန်အဆင့်များဖြစ်ကြသည်။
<?php
// ဒေတာဘေ့စ် connection configuration ကို
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test_db";
// ဆက်သွယ်မှုတစ်ခုဖန်တီးပါ
$conn = new mysqli($servername, $username, $password, $dbname);
// ဆက်သွယ်မှုကိုစစ်ဆေးပါ
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// စာမျက်နှာတစ်ခုချင်းစီကိုပြသတဲ့ entries အရေအတွက်
$records_per_page = 10;
// လက်ရှိစာမျက်နှာနံပါတ်ကိုရယူပါ,default သည်ပထမဆုံးစာမျက်နှာဖြစ်သည်
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$start_from = ($page - 1) * $records_per_page;
// ဒေတာစုစုပေါင်းအရေအတွက်ကိုရယူပါ
$sql_count = "SELECT COUNT(*) AS total_records FROM users";
$result_count = $conn->query($sql_count);
$row = $result_count->fetch_assoc();
$total_records = $row['total_records'];
// စာမျက်နှာများစုစုပေါင်းအရေအတွက်ကိုတွက်ချက်ပါ
$total_pages = ceil($total_records / $records_per_page);
// အသုံးပြု stmt_init function ကို snotination preprocessing ကြေညာချက်
$stmt = $conn->stmt_init();
if ($stmt->prepare("SELECT * FROM users LIMIT ?, ?")) {
// parameters တွေကိုချည်ထား
$stmt->bind_param("ii", $start_from, $records_per_page);
// တစ် ဦး စုံစမ်းမှု execute
$stmt->execute();
// ရလဒ်များကိုရယူပါ
$result = $stmt->get_result();
// output ကိုဒေတာ
while ($row = $result->fetch_assoc()) {
echo "ID: " . $row['id'] . " - Name: " . $row['name'] . "<br>";
}
// ရလဒ်ကိုလွှတ်ပေးရန်
$stmt->free_result();
// Preprocessing ကြေညာချက်ကိုပိတ်ပါ
$stmt->close();
}
// ဒေတာဘေ့စ် connection ကိုပိတ်ပါ
$conn->close();
?>
<!-- paging လင့်များပြသပါ -->
<div>
<p>Page:
<?php
// Pagination Navigation
for ($i = 1; $i <= $total_pages; $i++) {
echo "<a href='m66.net?page=$i'>$i</a> ";
}
?>
</p>
</div>
ဒေတာဘေ့စ်ဆက်သွယ်မှု - ဒေတာဘေ့စ်နှင့်ဆက်သွယ်မှုတစ်ခုဖန်တီးရန် MySQLI () ကို သုံးပါ။ ဆက်သွယ်မှုပျက်ကွက်ပါက code သည်အမှားအယွင်းတစ်ခုကိုပြသပြီးကွပ်မျက်မှုကိုအဆုံးသတ်စေသည်။
paging offset ကိုတွက်ချက်ပါ။ စာမျက်နှာတစ်ခုစီတွင်ဖော်ပြထားသောမှတ်တမ်းအရေအတွက်မှာမှတ်တမ်းများဖြစ်ပြီး Records_per_page ဖြစ်သည်။ လက်ရှိစာမျက်နှာနံပါတ် $ စာမျက်နှာ ပေါ်တွင် အခြေခံ. စုံစမ်းမှုစတင်ရန်မည်သည့်မှတ်တမ်းကိုတွက်ချက်သည်။ $ start_from = ($ စာမျက်နှာ - 1) * $ records_per_per_per_per_per_page က offset ကိုတွက်ချက်သည်။
စုစုပေါင်းမှတ်တမ်းများကိုရယူပါ။ ကျွန်ုပ်တို့သည် အသုံးပြုသူများ စားပွဲ၌စုစုပေါင်းမှတ်တမ်းများကိုရယူရန်စုံစမ်းမှုကိုကျွန်ုပ်တို့လုပ်ဆောင်ပြီးနောက်စာမျက်နှာစုစုပေါင်းအရေအတွက်ကိုတွက်ချက်ရန်။
Pagination Pagination Query: stmt_init () ကို သုံးပါ။ ရှာဖွေမှု parameters တွေကိုချည်နှောင်ရန် ပြင်ဆင်ခြင်း () နည်းလမ်း, bind_param () နည်းလမ်းဖြင့်ရှာဖွေခြင်းကိုရေးပါ။
Display Paging Navigage: ကွင်းဆက်မှတဆင့် paging link များကိုထုတ်လုပ်ပါ။ စာမျက်နှာတစ်ခုချင်းစီကိုနှိပ်ခြင်းနံပါတ်ကိုနှိပ်ခြင်းသည်သက်ဆိုင်ရာစာမျက်နှာသို့ခုန်ချပြီး M66.net အုတ်မြစ်စာရင်းတွင်ပြပါလိမ့်မည်။
MySQLI :: Stmtt_init function ကိုအသုံးပြုပြီး Pagination Query ကိုအသုံးပြုခြင်းသည်အချက်အလက်ရှာဖွေမှု၏ထိရောက်မှုကိုတိုးတက်စေရုံသာမက SQL Injection ကိုထိရောက်စွာတားဆီးနိုင်သည်။ အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ကြီးမားသောအချက်အလက်များလိုအပ်သည့်အခြေအနေများတွင်ရှုခင်းများကိုကြည့်ရှုခြင်းတွင်ကြည့်ရှုပါ။ ကျိုးကြောင်းဆီလျော်သောအစာရှောင်ခြင်းဒီဇိုင်းဖြင့်စနစ်စွမ်းဆောင်ရည်နှင့်သုံးစွဲသူအတွေ့အကြုံကိုသိသိသာသာတိုးတက်လာနိုင်သည်။
Pagination query function ကိုအကောင်အထည်ဖော်ရန် MySQLI :: stmt_init function ကိုမည်သို့အသုံးပြုရမည်ကိုနားလည်ရန်ဤဆောင်းပါးသည်သင့်အားနားလည်နိုင်ရန်မျှော်လင့်ပါ။ သင့်တွင်မေးခွန်းများရှိပါကသို့မဟုတ်ထပ်မံဆွေးနွေးရန်လိုအပ်ပါက ကျေးဇူးပြု. ဆွေးနွေးရန်သတင်းပို့ပါ။