အချို့သော developer အချို့သည် PHP ၏ MySQLI Extracting ကို အသုံးပြု. PHP ၏ MySQLI extension ကို အသုံးပြု. ရှုပ်ထွေးသောအမှားသတိပေးချက်များကိုကြုံတွေ့ရနိုင်သည်။
Fatal error: Uncaught Error: Call to undefined method mysqli_stmt::attr_get()
သို့မဟုတ်:
Warning: mysqli_stmt::attr_get(): invalid object or property in ...
MySQLI_STMT :: Att_GET () နည်းလမ်းကိုခေါ်ရန်ကြိုးစားသည့်အခါဤပြ problem နာသည်များသောအားဖြင့်ဖြစ်သည်။ အကြောင်းရင်းများကိုတစ်ဆင့်ပြီးတစ်ဆင့်ဆန်းစစ်ကြည့်ရှုကြပါစို့နှင့်ထိရောက်သောဖြေရှင်းနည်းများပေးကြပါစို့။
ပထမ ဦး စွာ MySQLI_STMT :: Att_Get () သည် PHP မှ MySQLI_STMT အတန်းအစားမဟုတ်ကြောင်းထောက်ပြသင့်သည်။
တရားဝင် PHP စာရွက်စာတမ်းများ အရ - httpsqli_stmt at အတန်းအစားတွင် ပါ 0 င်သည့်နည်းလမ်းများ မှာ bind_param () , execute (), execute (), execute (), execute () , Execute (), Execute (), Execute () , etc. attr_get () နည်းလမ်း။
ဤအမှားသည်အောက်ပါအခြေအနေများအနက်မှတစ်ခုဖြစ်သောကြောင့်ဖြစ်သည်။
PDO အတွက် api အလွဲသုံးစားမှု။
Att_GET () ကို PDostatement Onject တွင် GetATTRATHTRATE () တွင်အသုံးပြုသည်။ အဆိုပါနည်းလမ်းသည် PDO နှင့်သက်ဆိုင်ပြီး MySQLI နှင့်မသက်ဆိုင်ပါ။
မမှန်ကန်သောစာရွက်စာတမ်းများသို့မဟုတ်သင်ခန်းစာကိုးကားချက်များကိုအသုံးပြုခဲ့သည်။
အချို့သောသင်ခန်းစာများသို့မဟုတ်ဖိုရမ်များသည် MySQLI နှင့် PDO ၏ Syntax ကိုရှုပ်ထွေးစေပြီး MySQLI_STMT တွင်မတည်ရှိသည့်နည်းလမ်းများဟုခေါ်ဆိုရန်ကြိုးစားခြင်းကိုပြုလုပ်နိုင်သည်။
သင်၏ရည်မှန်းချက်မှာအချို့သောကွပ်မျက်မှုအခြေအနေကိုရရန်ဖြစ်လျှင် MySQLI_STMT မှပေးသောဇာတိနည်းလမ်းကိုသင်အသုံးပြုသင့်သည်။ ဥပမာအားဖြင့်:
$mysqli = new mysqli("localhost", "user", "password", "database");
$stmt = $mysqli->prepare("SELECT id, name FROM users WHERE status = ?");
$stmt->bind_param("s", $status);
$status = "active";
if ($stmt->execute()) {
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
echo $row['id'] . ': ' . $row['name'] . "<br>";
}
} else {
echo "Execution မအောင်မြင်ပါ:" . $stmt->error;
}
$stmt->close();
$mysqli->close();
အပေါ်တွင်ပြထားတဲ့အတိုင်း Bind_param () , execute () , get_result (), စသည်တို့ကိုတိုက်ရိုက်အသုံးပြုသင့်ပြီး attr_get () ကို အသုံးပြုသင့်သည် ။
အိမ်ခြံမြေဝယ်ယူမှုနှင့်ဆင်တူသည့်အင်္ဂါရပ်တစ်ခုလိုအပ်ပါက၎င်းကိုအကြံပြုပါသည်။
PDO သို့ပြောင်းပါ။
အကယ်. သင်သည် Object-Oriented Database Operations ကိုပိုမိုလေ့ကျင့်လျှင် PDO ကိုအသုံးပြုခြင်းသည် ပို. ပြောင်းလွယ်ပြင်လွယ်ရွေးချယ်စရာဖြစ်သည်။ ဥပမာ -
$pdo = new PDO("mysql:host=localhost;dbname=test", "user", "password");
$stmt = $pdo->prepare("SELECT id, name FROM users WHERE status = :status");
$stmt->bindParam(":status", $status);
$status = "active";
$stmt->execute();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo $row['id'] . ': ' . $row['name'] . "<br>";
}
ဤကိစ္စတွင်သင်သည် attribute အချက်အလက်များကို pdostatement ၏ attackute သတင်းအချက်အလက်ရရန် $ stmt-> getattrute (pdo: attribute) ကို သုံးနိုင်သည်။
စာရွက်စာတမ်း၏အရင်းအမြစ်ကိုစစ်ဆေးပါ။
သင်ကလုပ်ပိုင်ခွင့်ရှိသော PHP လက်စွဲစာအုပ်သို့မဟုတ်ယုံကြည်စိတ်ချရသောပစ္စည်းများဟုရည်ညွှန်းကြောင်းသေချာပါစေ။ Https://www.m66.net/ment/enuation/enuuation/enuuation/enuuation/enuation/enuation/enuation/index.php ကဲ့သို့သောမှန် site ကိုသုံးပါ။
"မမှန်ကန်သောအရာဝတ်ထုသို့မဟုတ်ပိုင်ဆိုင်မှု" အမှား၏အနှစ်သာရသည် MySQLI_STMMT :: Attr_et () သည် "မမှန်ကန်သောအရာဝတ်ထုသို့မဟုတ်ပစ္စည်းဥစ်စာပိုင်ဆိုင်မှု" ဟုဆိုသည်။ ဤပြ problem နာကိုရှောင်ရှားရန်နည်းလမ်းမှာ -
၎င်းသည် PDO အစား MySQLI ကို အတိအလင်းအသုံးပြုသည်။
MySQLI_STMMT မှပေးသောဥပဒေရေးရာနည်းလမ်းကိုသုံးပါ။
သင်ပိုမိုပြောင်းလွယ်ပြင်လွယ် attribute ခွဲစိတ်လုပ်ဆောင်မှုကိုလိုအပ်ပါက PDO ကို အသုံးပြုပါ။
အလားတူ "နည်းလမ်းမတည်ရှိပါ" အမှားအမှားမရှိသေးသောအခါ "နည်းလမ်းမရှိသေးပါ" အမှားအမှားအယွင်းရှိသည့်အခါပထမ ဦး ဆုံးတုံ့ပြန်မှုသည်တရားဝင်မှတ်တမ်းများကိုမျက်ခြည်မပြတ်သောလုပ်ဆောင်မှုများကိုမတူဘဲအတည်ပြုရန်မဟုတ်ဘဲအတည်ပြုရန်တရားဝင်မှတ်တမ်းများကိုစစ်ဆေးရန်ဖြစ်သည်။
PHP ၏ API သတ်မှတ်ချက်များကိုတင်းကြပ်စွာလိုက်နာခြင်းနှင့် MySQLI နှင့် PDO အကြားကွဲပြားခြားနားမှုများနှင့်အကျွမ်းတ 0 င်ရှိခြင်းအားဖြင့်ထိုကဲ့သို့သောအမှားများကိုထိရောက်စွာရှောင်ရှားနိုင်ပြီးဖွံ့ဖြိုးမှုစွမ်းရည်နှင့်ကုဒ်အရည်အသွေးတိုးတက်လာသည်။