နေ့စဉ်ဘ 0 တွင်ဒေတာဘေ့စ်လုပ်ငန်းများအတွက် PHP ကိုအသုံးပြုသောအခါကျွန်ုပ်တို့သည်အထူးသဖြင့်အတိအကျသောကိန်းဂဏန်းယုတ္တိဗေဒဆိုင်ရာယုတ္တိဗေဒသို့မဟုတ်ဆုံးဖြတ်ချက်ချရန်အတွက်စုံစမ်းမှုရလဒ်များကိုစစ်ဆေးခြင်းကိုစစ်ဆေးရန်လိုအပ်သည်။ PHP သည်စာရိုက်သည့်ဘာသာစကားတစ်ခုဖြစ်သော်လည်း၎င်းသည်အချက်အလက်အမျိုးအစားများကိုကျွန်ုပ်တို့လျစ်လျူရှုနိုင်သည်ဟုမဆိုလိုပါ။ ဒေတာဘေ့စ်စုံစမ်းမှုရလဒ်များမှအချက်အလက်များသည်ကိန်းဂဏန်းများဖြစ်သောအချက်အလက်များသည် ကိန်းဂဏန်းများ ဖြစ်စေ,
is_integer () သည် PHP တွင် built-in အမျိုးအစားရှာဖွေခြင်း function တစ်ခုဖြစ်သည်။ ၎င်းသည် variable တစ်ခုသည် integer type ( int ) ရှိမရှိဆုံးဖြတ်ရန်အသုံးပြုသည်။ Syntax သည်အလွန်ရိုးရှင်းပါသည်။
is_integer(mixed $value): bool
လွန်သွားသော variable ကို ကိန်းဂဏန်း တစ်ခုဖြစ်သောအခါ စစ်မှန်သော ပြန်လာပါ။ ဒီ function ဟာ alias ကို alias ဖြစ်တဲ့ is_int () နဲ့ညီမျှသည်။
$number = 10;
if (is_integer($number)) {
echo "ဒါကကိန်းဂဏန်းတစ်ခုပါ";
} else {
echo "ဒါကကိန်းတစ်ခုမဟုတ်ပါဘူး";
}
output ကိုဖြစ်လိမ့်မည်:
ဒါကကိန်းဂဏန်းတစ်ခုပါ
PDO သို့မဟုတ် MySQLI မှတဆင့်စုံစမ်းမှုတစ်ခုဖြစ်သော PHP ကို Database (ဥပမာ MySQL ကဲ့သို့သော) ကိုဒေတာဘေ့စ်တစ်ခုတွင် int think တစ်ခုအဖြစ်သတ်မှတ်ထားသည့်တိုင် PHP သည်ရလဒ်ကိုပုံမှန်အားဖြင့် string တစ်ခုအဖြစ်ပြန်လည်ရယူလိမ့်မည်။ ဆိုလိုသည်မှာဒေတာဘေ့စ်၏တန်ဖိုးသည်ကိန်းတစ်ခု၏တန်ဖိုးသည်ကိန်းတစ်ခုဖြစ်လျှင်ပင် PHP တွင်ရရှိသောတန်ဖိုးသည် string type အမျိုးအစားတစ်ခုဖြစ်နိုင်သည်။
ဥပမာအားဖြင့်:
// ယူဆချက် users စားပွဲပေါ်မှာ id လယ်ပြင်သည် INT ပုံနှိပ်စာ
$stmt = $pdo->query("SELECT id FROM users WHERE id = 1");
$row = $stmt->fetch(PDO::FETCH_ASSOC);
var_dump($row['id']);
var_dump(is_integer($row['id']));
output ကိုဖြစ်လိမ့်မည်:
string(1) "1"
bool(false)
ဤအချက်ကဒေတာဘေ့စ်ရှိ ID သည်ကိန်းတစ်ခုဖြစ်သော်လည်း PHP သည် "1" နှင့် is_integer () သည်ရလဒ်မှာ မှားကြောင်း ဆုံးဖြတ်သည်။
is_integer () မှန်ကန်သောဆုံးဖြတ်ချက်ချရန်အတွက်ကျွန်ုပ်တို့သည်အချက်အလက်များကိုရယူသည့်အခါအမျိုးအစားပြောင်းလဲခြင်းကိုပြုလုပ်ရန်လိုအပ်သည်။
$id = (int)$row['id'];
if (is_integer($id)) {
echo "id ကိန်းဂဏန်းတစ်ခုပါ";
}
ဤနည်းလမ်းသည်ရိုးရှင်းပြီးအလိုအလျောက်ဖြစ်သည်။
PDO သည်ရှာဖွေခြင်းတွင်ကွဲပြားခြားနားသောဒေတာအမျိုးအစားများကိုပြန်ပို့ခြင်းကိုထောက်ခံသည်။ PDO :: attr_emulate_emulate_emulate_prepars နှင့်ပေါင်းစပ်။ PDE: attr_emulate_emulate_emulate_prepars နှင့်ပေါင်းစပ်နိုင်သည်။
အောက်ဖော်ပြပါသည်သုံးစွဲသူမှ ID နှင့်ကိုက်ညီမှုရှိမရှိဆုံးဖြတ်ရန်အမှန်တကယ် application အခြေအနေများအပေါ်အခြေခံပြီးဥပမာတစ်ခုမှာဒေတာဗေ့စ်ရှိ ID နှင့်ကိုက်ညီမှုရှိမရှိဆုံးဖြတ်ရန်။
// အသုံးပြုသူထည့်သွင်းမှုကို
$userInput = $_GET['id'] ?? null;
if (!is_numeric($userInput)) {
exit("တရားမဝင်သော ID");
}
// ဒေတာဘေ့စ်ကိုမေးမြန်းပါ
$stmt = $pdo->prepare("SELECT id FROM users WHERE id = ?");
$stmt->execute([$userInput]);
$row = $stmt->fetch(PDO::FETCH_ASSOC);
if ($row && is_integer((int)$row['id'])) {
echo "ဤကိန်းဂဏန်းသည်ဒေတာဘေ့စ်တွင်တည်ရှိသည် ID";
} else {
echo "အဘယ်သူမျှမသက်ဆိုင်ရာတွေ့ရှိခဲ့ပါတယ် ID 或ပုံနှိပ်စာ错误";
}
အချို့သော interface ဒီဇိုင်းများတွင်ကျွန်ုပ်တို့သည် URL မှ parameters တွေကိုယူရန်နှင့်ကိန်းဂဏန်းများရှိမရှိဆုံးဖြတ်ရန်လိုအပ်နိုင်သည်။ ဥပမာအားဖြင့်အသုံးပြုသူများသည်အောက်ပါ URL မှတစ်ဆင့်ရယူနိုင်သည်။
https://gitbox.net/get-user.php?id=42
ထိုကဲ့သို့သောတောင်းဆိုမှုများကိုပြုပြင်သည့်အခါ is_integer နှင့်ပေါင်းစပ်။ parameters တွေကိုသင်အတည်ပြုနိုင်ပါတယ်:
$id = $_GET['id'] ?? null;
if (is_numeric($id) && is_integer((int)$id)) {
$id = (int)$id;
// ထို့နောက်ဒေတာဘေ့စ်လုပ်ငန်းများကိုလုပ်ဆောင်ပါ
} else {
echo "တရားမဝင်သော参数";
}
Data အမျိုးအစားများကိုအတည်ပြုသည့်အခါဒေတာအမျိုးအစားများကိုအတည်ပြုသည့်အခါ is_integer () သည်အထူးသဖြင့်စီးပွားရေးဆိုင်ရာယုတ္တိဗေဒကိုသေချာစေရန်လိုအပ်သည့်စီးပွားရေးဆိုင်ရာယုတ္တိဗေဒကိုသေချာစေရန်လိုအပ်သည်။ သို့သော် PHP သည် Numeric Fields ကို database မှကြိုးများအဖြစ်ပြန်လည်ထုတ်လွှင့်သောကြောင့်အသုံးမပြုမီလက်စွဲစာအုပ်အမျိုးအစားပြောင်းလဲခြင်းပြုလုပ်ရန်လိုအပ်သည်။ ဤယန္တရားကိုနားလည်ခြင်းနှင့်မှန်ကန်စွာအသုံးပြုခြင်းကိုမှန်ကန်စွာအသုံးပြုခြင်းသည်အမှန်တကယ်စီးပွားရေးလုပ်ငန်းများနှင့်ပေါင်းစပ်ပြီး မှန်ကန်စွာ ဖြင့်ပေါင်းစပ်ခြင်းဖြင့်ပရိုဂရမ်နှင့်အချက်အလက်တိကျမှန်ကန်မှုကိုထိရောက်စွာတိုးတက်စေနိုင်သည်။