PHP တွင်ဒေတာဘေ့စ်လုပ်ငန်းများအတွက် MySQLI extension ကိုအသုံးပြုသောအခါ SQL Query () ကို MySQLI_QUERY () () နှင့်စုံစမ်းမှုရလဒ်များကို MySQLI_RESult Objects မှတဆင့်ရရှိသည်။ MySQLI_RESult Object သည် query_assoc () , Fetter_row () စသည်တို့မှအချက်အလက်များကိုရယူရန်ခွင့်ပြုသည် ။
MySQLI_RESult Object ၏ဘဝသံသရာသည်စုံစမ်းမှု၏ကွပ်မျက်မှုနှင့်ရလဒ်ဝယ်ယူမှု၏ကွပ်မျက်မှုနှင့်နီးကပ်စွာဆက်စပ်မှုရှိသည်။ များသောအားဖြင့် MySQLI_RESULT OFF သည်အောက်ပါကိစ္စရပ်များတွင်ကျရှုံးလိမ့်မည်။
စုံစမ်းမှုတစ်ခုဖြစ်သည့်အခါ SQL ကြေငြာချက် တွင် SQL ကြေ ငြာ ချက် တွင် syntax အမှားတစ်ခုသို့မဟုတ်အခြားအကြောင်းပြချက်များရှိပါက, ထို့ကြောင့်ဤမမှန်ကန်သောအရာဝတ်ထုကိုလုပ်ကိုင်ရန်ကြိုးပမ်းမှုသည်အမှားတစ်ခုဖြစ်ပေါ်လိမ့်မည်။
query query သည်ရလဒ်ကိုအလွတ်ပြန်ရောက်လာသောအခါ (ဥပမာအားဖြင့် Selecting Query သည် ကိုက်ညီသောအချက်အလက်များကိုရှာမတွေ့ပါ။ ဤကိစ္စတွင်သင် Fetch _ * () နည်းလမ်းကိုခေါ်ပါကရလဒ်သည် တရား 0 င် သို့မဟုတ် မှားယွင်းသော ဖြစ်လိမ့်မည်။
MySQLI_RESULT အရာဝတ်ထုသည်စုံစမ်းမှုရလဒ်ကိုအခြေခံသည်။ ရလဒ်အားလုံးကိုဖြတ်သန်းသွားသောအခါဤအရာဝတ်ထုကိုဖျက်ဆီးပစ်မည်။ စုံစမ်းမှုကြုံတွေ့ရပြီးအချက်အလက်များကိုလုပ်ဆောင်သောအခါ MySQLI_RESULT OFF အလိုအလျောက်သက်တမ်းကုန်ဆုံးလိမ့်မည်။
အကယ်. စုံစမ်းမှုရလဒ်သည်အလွန်ကြီးမားပြီးအချက်အလက်ပမာဏသည်မှတ်ဥာဏ်ကန့်သတ်ချက်ထက်ကျော်လွန်ပါက MySQLI_RESult Object သည်မှတ်ဉာဏ်ကန့်သတ်ချက်ကြောင့်လည်းမမှန်ကန်ပါ။ ဤအချိန်တွင် "Memory Overflow" အမှား တစ်ခုပေါ် လာလိမ့်မည်။
မေးမြန်းခြင်းပျက်ကွက်ခြင်း MySQLI_RESULT အရာဝတ်ထုကိုမဖန်တီးနိုင်ရန်အတွက်သာဖြစ်စေသည်သာမကအကျိုးဆက်များလည်းရှိနိုင်သည်။
တိုက်ရိုက်အကျိုးဆက်အနေဖြင့်အချက်အလက်များမရရှိနိုင်သည့်အတွက်ဖြစ်သည်။ ဥပမာအားဖြင့်, selection query တစ်ခုပြုလုပ်ရာတွင် အကယ်. မေးမြန်းမှုမအောင်မြင်ပါကမျှော်လင့်ထားသည့်ရလဒ်ကိုသင်ရယူနိုင်လိမ့်မည်မဟုတ်ဘဲအချက်အလက်များကိုထပ်မံလုပ်ဆောင်ရန်နည်းလမ်းမရှိပါ။
ဒေတာဘေ့စ်လုပ်ငန်းများ၌, ဥပမာအားဖြင့်, အကယ်. မေးမြန်းမှုသည်ပျက်ကွက်သောရလဒ်ကိုပြန်လည်ရရှိခြင်း,
မေးမြန်းမှုပျက်ကွက်မှုတွင်သင့်လျော်သောအမှားကိုင်တွယ်သည့်ယန္တရားမပါဘဲဤအစီအစဉ်သည်တူညီသောမအောင်မြင်သောရှာဖွေမှုကိုထပ်ခါတလဲလဲကြိုးစားခြင်း,
အကယ်. မေးမြန်းမှုသည်ထိထိရောက်ရောက်ဖမ်းဆီးခြင်းနှင့်လုပ်ငန်းများ၌မအောင်မြင်ရန်ပျက်ကွက်ပါက၎င်းသည်ဒေတာဘေ့စ်သို့မဟုတ်အခြားအထိခိုက်မခံသောသတင်းအချက်အလက်များကိုနားလည်ရန်ကူညီနိုင်သည့်အမှားသတင်းအချက်အလက်များကိုယိုစိမ့်စေနိုင်သည်။ ၎င်းသည်အထူးသဖြင့်ထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင်အန္တရာယ်ရှိသည်, ထို့ကြောင့် developer များစုံစမ်းမှုအမှားများကိုစနစ်တကျကိုင်တွယ်ရန်သေချာစေရမည်။
ဒေတာဘေ့စ်မေးမြန်းမှုနှင့်ရလဒ်ပြုပြင်ခြင်းအတွက်ချောချောမွေ့မွေ့တိုးတက်စေရန်အတွက်အောက်ပါအချက်များကိုဂရုပြုရမည်။
MySQLI_QUERY () အပြီး ( ) ကွပ်မျက်မှုတစ်ခုစီပြီးနောက်, နမူနာကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
$conn = mysqli_connect('localhost', 'username', 'password', 'database');
$query = "SELECT * FROM users";
$result = mysqli_query($conn, $query);
if (!$result) {
die('စုံစမ်းမှုမအောင်မြင်ပါ: ' . mysqli_error($conn));
}
// စုံစမ်းမှုရလဒ်များကိုဆက်လက်လုပ်ဆောင်ရန်ဆက်လက်
while ($row = mysqli_fetch_assoc($result)) {
echo $row['name'];
}
mysqli_free_result($result);
mysqli_close($conn);
PHP 5 နှင့်နောက်ပိုင်းတွင် Support Support Support Support Support Support Support Support နှင့် query faily များကို database operations များကို try-catch block တွင် encapsult လုပ်ခြင်းဖြင့်ပိုမိုကောင်းမွန်သောကိုင်တွယ်နိုင်သည်။
try {
$conn = new mysqli('localhost', 'username', 'password', 'database');
if ($conn->connect_error) {
throw new Exception("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $conn->connect_error);
}
$result = $conn->query("SELECT * FROM users");
if (!$result) {
throw new Exception("စုံစမ်းမှုမအောင်မြင်ပါ: " . $conn->error);
}
while ($row = $result->fetch_assoc()) {
echo $row['name'];
}
$result->free();
$conn->close();
} catch (Exception $e) {
echo 'အမှား: ' . $e->getMessage();
}
စုံစမ်းမှုရလဒ်များပြုပြင်ပြောင်းလဲရေးရလဒ်များကိုပြုလုပ်သောအခါအချည်းနှီးသောအရာဝတ်ထုများကိုရယူခြင်းကြောင့်ဖြစ်ပေါ်လာသောအမှားများကိုရှောင်ရှားရန်အချည်းနှီးဖြစ်စေသည်။
$result = mysqli_query($conn, "SELECT * FROM users");
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_assoc($result)) {
echo $row['name'];
}
} else {
echo "မှတ်တမ်းများမရှိပါ";
}
mysqli_free_result($result);
အထက်ပါနည်းလမ်းအားဖြင့်ကျွန်ုပ်တို့သည်စုံစမ်းမှု၏တည်ငြိမ်မှုကိုသေချာစေရန် MySQLI_RESULT ကိုပျက်ကွက်ခြင်းမှကာကွယ်ရန်နှင့်လျှောက်လွှာအတွက်မေးမြန်းမှုပျက်ကွက်ခြင်း၏ဆိုးကျိုးများကိုရှောင်ရှားနိုင်ရန်, အမှားကိုင်တွယ်ခြင်းနှင့်ရလဒ်စိစစ်စစ်ဆေးမှုသည်ဒေတာဘေ့စ်လုပ်ငန်းများ၏ယုံကြည်စိတ်ချရမှုနှင့်လုံခြုံမှုကိုသေချာစေရန်အဓိကချိတ်ဆက်မှုများဖြစ်သည်။