MySQL အပေါ် အခြေခံ. PHP applications များဖွံ့ဖြိုးဆဲသည့်အခါစုံစမ်းမှုဆိုင်ရာအချက်အလက်များနှင့်အသုံးပြုသူအချက်အလက်များဆိုင်ရာအချက်အလက်များကိုအတွေ့အကြုံများတိုးတက်စေရန်အတွက်ကျွန်ုပ်တို့သည်များသောအားဖြင့်အချက်အလက်များကို 0 န်ဆောင်မှုပေးရန်အများအားဖြင့်ဓာတ်ပုံများရှာဖွေခြင်းကိုအသုံးပြုလေ့ရှိသည်။ SQL splicing နည်းလမ်းကိုတိုက်ရိုက် အသုံးပြု. MySQLI_STMMT :: ပြင်ဆင်ရန် အတွက် SQL Injection ကိုထိရောက်စွာကာကွယ်နိုင်ရုံသာမက Code of Rappinate နှင့်ပြုပြင်ထိန်းသိမ်းခြင်းကိုလည်းထိရောက်စွာတားဆီးနိုင်သည်။ MySQLI_STMT မှတစ်ဆင့် Pagination Quessial Query ကိုမည်သို့အကောင်အထည်ဖော်ရမည်နှင့် ပတ်သက်. ဤဆောင်းပါးကဤဆောင်းပါးကသင့်အားပိုမိုလေ့လာရန်သင့်အားစာကြီးများကိုဥပမာနှင့်ခွဲခြမ်းစိတ်ဖြာပါ။
Pagination query ၏အဓိကအချက်မှာ SQL ၏ ကန့်သတ် အပိုဒ်တွင်တည်ရှိသည်။
SELECT * FROM table_name LIMIT offset, page_size;
အတွက်
offset : မှဖတ်ရန်မှတ်တမ်းကိုညွှန်ပြ, offset ။
Page_Size - စာမျက်နှာတစ်ခုချင်းစီကိုဖော်ပြထားတဲ့မှတ်တမ်းအရေအတွက်။
MySQLI_STMT :: ပြင်ဆင်ရန်အတွက်ပြင်ဆင်ခြင်း function ကိုပြင်ဆင်ပါ။ ကန့်သတ်ထားသည့် အပိုဒ်၏ paraale ၏ parameters များသည် variasy များကိုတိုက်ရိုက်ချည်နှောင်။ မရပါကဤကန့်သတ်ချက်ကိုကျော်လွှားရန်လှည့်ကွက်အချို့ကိုအသုံးပြုရန်လိုအပ်သည်။
MySQLI extension ကိုသုံးပြီး preprocessing ထုတ်ပြန်ချက်များကိုဖွင့်ထားကြောင်းသေချာအောင်လုပ်ပါ။
ဒေတာဘေ့စ်ဆက်သွယ်မှုကိုထူထောင်ခဲ့သည်။
အသုံးပြုသူများ ကဲ့သို့သောမေးမြန်းခြင်းအတွက်ဒေတာဇယားရှိပါသည်။
<?php
$mysqli = new mysqli("localhost", "username", "password", "database");
if ($mysqli->connect_error) {
die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error);
}
?>
<?php
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$page_size = 10;
$offset = ($page - 1) * $page_size;
?>
က န့်သတ် အပိုဒ်တွင် variasy များကတည်းက bind_param မှတဆင့်ခညျြနှောငျနိုငျသညျ, သို့သော်အခြားခြွင်းချက်သတ်မှတ်ချက်များကိုဖြည့်ဆည်းရန် ပြင်ဆင်ထား ဆဲဖြစ်သည်။
<?php
$sql = "SELECT id, name, email FROM users ORDER BY id DESC LIMIT ?, ?";
$stmt = $mysqli->prepare($sql);
$stmt->bind_param("ii", $offset, $page_size);
$stmt->execute();
$result = $stmt->get_result();
?>
<?php
while ($row = $result->fetch_assoc()) {
echo "<p>{$row['id']} - {$row['name']} - {$row['email']}</p>";
}
?>
စုစုပေါင်းမှတ်တမ်းအရေအတွက်ကိုယူဆခြင်းသည် $ total_rowrows သည် variable viable_rows ဖြစ်သည်။ အောက်ပါနည်းလမ်းအတိုင်း paging link ကိုထုတ်လုပ်နိုင်သည်။
<?php
$total_rows = 100; // များသောအားဖြင့်စုစုပေါင်းအရေအတွက်ကိုရရန်သီးခြားရှာဖွေရန်လိုအပ်သည်
$total_pages = ceil($total_rows / $page_size);
for ($i = 1; $i <= $total_pages; $i++) {
echo "<a href='https://gitbox.net/userlist.php?page=$i'>1 ။ $i စာမျက်နှာ</a> ";
}
?>
<?php
$mysqli = new mysqli("localhost", "username", "password", "database");
if ($mysqli->connect_error) {
die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error);
}
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$page_size = 10;
$offset = ($page - 1) * $page_size;
$sql = "SELECT id, name, email FROM users ORDER BY id DESC LIMIT ?, ?";
$stmt = $mysqli->prepare($sql);
$stmt->bind_param("ii", $offset, $page_size);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
echo "<p>{$row['id']} - {$row['name']} - {$row['email']}</p>";
}
$stmt->close();
$mysqli->close();
?>
MySQLI_STMMT ကိုအသုံးပြုပြီး Pagination Query ကိုအသုံးပြုပြီးအကောင်အထည်ဖော်ရန်အတွက်သော့ချက်မှာ MySQLI_STMT :: ပြင်ဆင်ရန် နှင့် parameter binding ၏ကန့်သတ်ချက်များကိုနားလည်ရန်ဖြစ်သည်။ က န့်သတ်ထားသည့် parameter သည် playneter ကိုမသုံးနိုင်ပေမဲ့လုံခြုံပြီးယုံကြည်စိတ်ချရသောအတုအယောင်များကိုအောင်မြင်ရန်ဂဏန်းအမျိုးအစားသတ်မှတ်ချက်များကိုချည်နှောင်ရန် Bind_param ကို အသုံးပြုနေဆဲဖြစ်သည်။ အမှန်တကယ်စီမံကိန်းများတွင်ဤနည်းလမ်းသည်ရိုးရာ string splicing ထက်ပိုမိုလုံခြုံမှုရှိပြီးပိုမိုလွယ်ကူသည်။ Page Navigation Logic နှင့်ပေါင်းစပ်ပြီးစနစ်၏အသုံးပြုသူအတွေ့အကြုံနှင့်စွမ်းဆောင်ရည်ကိုတိုးတက်စေရန်အပြည့်အဝထားသောဒေတာ display system ကိုတည်ဆောက်နိုင်သည်။