PHP တွင် MySQLI extension ကို MySQL ဒေတာဘေ့စ်နှင့်အပြန်အလှန်ဆက်သွယ်ရန်အသုံးပြုသည်။ ဒေတာဘေ့စ်စုံစမ်းမှုတစ်ခုကိုအကောင်အထည်ဖော်သည့်အခါ MySQLI :: $ error roress attribute သည်လက်ရှိချိတ်ဆက်ထားသော MySQL ဒေတာဘေ့စ်မှပြန်လာသောအမှားသတင်းကိုပေးသည်။ အကယ်. စုံစမ်းမှုပျက်ကွက်ပါက MySQLI :: $ အမှားသည် MySQL မှပြန်လာသောအမှားအချက်အလက်များကို MySQL မှရရှိသောသတင်းအချက်အလက်များကိုသိမ်းဆည်းလိမ့်မည်။ developer များကဤအိမ်ခြံမြေကိုသုံးနိုင်သည်။
ဘာသာစကားမျိုးစုံ applications များတွင် MySQL အမှားအယွင်းများကိုတိုက်ရိုက်အသုံးပြုခြင်းသည်များသောအားဖြင့်အင်္ဂလိပ်သို့မဟုတ်နည်းပညာပိုင်းဆိုင်ရာဖော်ပြချက်နှင့်သာမန်အသုံးပြုသူများကိုဖတ်ရန်မသင့်တော်ပါ။ ထို့ကြောင့်ကျွန်ုပ်တို့သည် MySQLI :::: အမှားအယွင်းများကို အထောက်အကူပြုသောအမှားသတိပေးချက်များကိုတည်ဆောက်ရန်လိုအပ်သည်။
ဘာသာစကားမျိုးစုံမှားယွင်းသောအမှားသတိပေးချက်ကိုအကောင်အထည်ဖော်ရန်အဓိကလုပ်ဆောင်မှုသည်အသုံးပြုသူဘာသာစကားကြိုက်နှစ်သက်မှုများမှတစ်ဆင့်အမှားအချက်အလက်များကိုပြောင်းလဲခြင်းဖြင့်ဖြစ်သည်။ ဤတွင်အချို့သောသော့ချက်အဆင့်များမှာ -
ပထမ ဦး စွာသင်သည်အသုံးပြုသူ၏ဘာသာစကားဆက်တင်များကိုရယူရန်လိုအပ်သည်။ ပုံမှန်အားဖြင့်အသုံးပြုသူ၏ဘာသာစကားချိန်ညှိချက်များကို session တစ်ခုတွင်သိမ်းဆည်းထားသည့်သို့မဟုတ် browser ၏ လက်ခံဘာသာစကား တောင်းဆိုမှုခေါင်းစဉ်မှတဆင့်သိမ်းဆည်းထားသည်။ ရိုးရိုးရှင်းရှင်းပြောရလျှင်ဘာသာစကားကို _session ['lang') တွင်သိုလှောင်ထားပြီးဖြစ်သည်ဟုကျွန်ုပ်တို့ယူဆသည်။
<span><span><span class="hljs-comment">// လက်ရှိဘာသာစကားကိုရယူပါ,ပုံမှန်ကအင်္ဂလိပ်ပါ</span></span><span>
</span><span><span class="hljs-variable">$lang</span></span><span> = </span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$_SESSION</span></span><span>[</span><span><span class="hljs-string">'lang'</span></span><span>]) ? </span><span><span class="hljs-variable">$_SESSION</span></span><span>[</span><span><span class="hljs-string">'lang'</span></span><span>] : </span><span><span class="hljs-string">'en'</span></span><span>;
</span></span>
စာရိုက်သူတစ် ဦး ချင်းစီနှင့်သက်ဆိုင်သောဘာသာစကားတစ်ခုစီနှင့်အတူရှုထောင့်စုံခင်းကျင်းမှုတွင်အမှားသတိပေးချက်စာသားကိုကျွန်ုပ်တို့သတ်မှတ်နိုင်သည်။ ဤနည်းအားဖြင့်အမှားအယွင်းများအားလုံးသည် Array တွင်တွေ့နိုင်သည်။
<span><span><span class="hljs-variable">$errorMessages</span></span><span> = [
</span><span><span class="hljs-string">'en'</span></span><span> => [
</span><span><span class="hljs-string">'invalid_query'</span></span><span> => </span><span><span class="hljs-string">'There was an error with the SQL query.'</span></span><span>,
</span><span><span class="hljs-string">'connection_failed'</span></span><span> => </span><span><span class="hljs-string">'Failed to connect to the database.'</span></span><span>,
</span><span><span class="hljs-string">'unknown_error'</span></span><span> => </span><span><span class="hljs-string">'An unknown error occurred.'</span></span><span>,
],
</span><span><span class="hljs-string">'zh'</span></span><span> => [
</span><span><span class="hljs-string">'invalid_query'</span></span><span> => </span><span><span class="hljs-string">'SQL query အတွက်အမှားတစ်ခုဖြစ်ပွားခဲ့သည်。'</span></span><span>,
</span><span><span class="hljs-string">'connection_failed'</span></span><span> => </span><span><span class="hljs-string">'ဒေတာဘေ့စဆက်သွယ်မှုမအောင်မြင်ပါ。'</span></span><span>,
</span><span><span class="hljs-string">'unknown_error'</span></span><span> => </span><span><span class="hljs-string">'အမည်မသိအမှားတစ်ခုဖြစ်ပွားခဲ့သည်。'</span></span><span>,
],
</span><span><span class="hljs-comment">// သင်သည်အခြားဘာသာစကားများကိုဆက်လက်ထည့်သွင်းနိုင်သည်</span></span><span>
];
</span></span>
ထို့နောက်ကျွန်ုပ်တို့သည်လက်ရှိဘာသာစကားနှင့် MySQL အမှားအယွင်းများအပေါ် အခြေခံ. သင့်လျော်သောအချက်ပြချက်များကိုပြသသည့်စိတ်ကြိုက်အမှားကိုင်တွယ်သည့်လုပ်ဆောင်ချက်ကိုဖန်တီးနိုင်သည်။
<span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">getErrorMessage</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$error</span></span></span><span>, </span><span><span class="hljs-variable">$lang</span></span><span> = </span><span><span class="hljs-string">'en'</span></span><span>) {
</span><span><span class="hljs-keyword">global</span></span><span> </span><span><span class="hljs-variable">$errorMessages</span></span><span>;
</span><span><span class="hljs-comment">// ဘာသာစကားရွေးချယ်ခြင်းအတွက်အမှားအယွင်း</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$errorMessages</span></span><span>[</span><span><span class="hljs-variable">$lang</span></span><span>]) && </span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$errorMessages</span></span><span>[</span><span><span class="hljs-variable">$lang</span></span><span>][</span><span><span class="hljs-variable">$error</span></span><span>])) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$errorMessages</span></span><span>[</span><span><span class="hljs-variable">$lang</span></span><span>][</span><span><span class="hljs-variable">$error</span></span><span>];
}
</span><span><span class="hljs-comment">// အဘယ်သူမျှမသက်ဆိုင်ရာအမှားမက်ဆေ့ခ်ျကိုရှာတွေ့ပါ,ပုံမှန်အင်္ဂလိပ်အမှားသတင်းစကားကိုပြန်ပို့သည်</span></span><span>
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$errorMessages</span></span><span>[</span><span><span class="hljs-string">'en'</span></span><span>][</span><span><span class="hljs-variable">$error</span></span><span>] ?? </span><span><span class="hljs-string">'An error occurred.'</span></span><span>;
}
</span></span>
နောက်တစ်ခုဒေတာဘေ့စ်လည်ပတ်မှုတွင် MySQLI :: $ အမှား မှတစ်ဆင့်ဒေတာဘေ့စ်၏အမှားအချက်အလက်များကိုသင်ရရှိနိုင်ပါသည်။
<span><span><span class="hljs-variable">$mysqli</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">mysqli</span></span><span>(</span><span><span class="hljs-string">'localhost'</span></span><span>, </span><span><span class="hljs-string">'user'</span></span><span>, </span><span><span class="hljs-string">'password'</span></span><span>, </span><span><span class="hljs-string">'database'</span></span><span>);
</span><span><span class="hljs-comment">// ဆက်သွယ်မှုအောင်မြင်မှုရှိမရှိစစ်ဆေးပါ</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$mysqli</span></span><span>->connect_error) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">getErrorMessage</span></span><span>(</span><span><span class="hljs-string">'connection_failed'</span></span><span>, </span><span><span class="hljs-variable">$lang</span></span><span>);
</span><span><span class="hljs-keyword">exit</span></span><span>();
}
</span><span><span class="hljs-comment">// တစ် ဦး ကွပ်မျက်ခံရ SQL မေးမြန်း</span></span><span>
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">query</span></span><span>(</span><span><span class="hljs-string">'SELECT * FROM non_existent_table'</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-variable">$result</span></span><span>) {
</span><span><span class="hljs-comment">// ရယူ mysqli အမှားသတင်းစကား</span></span><span>
</span><span><span class="hljs-variable">$mysqlError</span></span><span> = </span><span><span class="hljs-variable">$mysqli</span></span><span>->error;
</span><span><span class="hljs-comment">// 根据အမှားသတင်းစကား决定错误类型</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">strpos</span></span><span>(</span><span><span class="hljs-variable">$mysqlError</span></span><span>, </span><span><span class="hljs-string">'unknown column'</span></span><span>) !== </span><span><span class="hljs-literal">false</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">getErrorMessage</span></span><span>(</span><span><span class="hljs-string">'invalid_query'</span></span><span>, </span><span><span class="hljs-variable">$lang</span></span><span>);
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">getErrorMessage</span></span><span>(</span><span><span class="hljs-string">'unknown_error'</span></span><span>, </span><span><span class="hljs-variable">$lang</span></span><span>);
}
}
</span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">close</span></span><span>();
</span></span>
Code ကိုပိုမိုကောင်းမွန်အောင်ပြုလုပ်ရန်ကျွန်ုပ်တို့သည် PHP ဖိုင်များသို့ hard-code အားလုံးကိုရှောင်ရှားရန်အမှားအချက်အလက်များကိုဘာသာစကားဖိုင်များသိမ်းဆည်းထားနိုင်သည်။ ဘာသာစကားတစ်ခုစီသည်အောက်ပါအကြောင်းအရာများပါ 0 င်သော PHP ဖိုင်နှင့်ကိုက်ညီသည်။
:
<span><span><span class="hljs-keyword">return</span></span><span> [
</span><span><span class="hljs-string">'invalid_query'</span></span><span> => </span><span><span class="hljs-string">'There was an error with the SQL query.'</span></span><span>,
</span><span><span class="hljs-string">'connection_failed'</span></span><span> => </span><span><span class="hljs-string">'Failed to connect to the database.'</span></span><span>,
</span><span><span class="hljs-string">'unknown_error'</span></span><span> => </span><span><span class="hljs-string">'An unknown error occurred.'</span></span><span>,
];
</span></span>
zh.php :
<span><span><span class="hljs-keyword">return</span></span><span> [
</span><span><span class="hljs-string">'invalid_query'</span></span><span> => </span><span><span class="hljs-string">'SQL query အတွက်အမှားတစ်ခုဖြစ်ပွားခဲ့သည်。'</span></span><span>,
</span><span><span class="hljs-string">'connection_failed'</span></span><span> => </span><span><span class="hljs-string">'ဒေတာဘေ့စဆက်သွယ်မှုမအောင်မြင်ပါ。'</span></span><span>,
</span><span><span class="hljs-string">'unknown_error'</span></span><span> => </span><span><span class="hljs-string">'အမည်မသိအမှားတစ်ခုဖြစ်ပွားခဲ့သည်。'</span></span><span>,
];
</span></span>
dynamically နှင့်သက်ဆိုင်သောဘာသာစကားဖိုင်ကို Code ထဲမှဖွင့်ပါ။
<span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">loadErrorMessages</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$lang</span></span></span><span>) {
</span><span><span class="hljs-variable">$filePath</span></span><span> = </span><span><span class="hljs-keyword">__DIR__</span></span><span> . </span><span><span class="hljs-string">"/lang/<span class="hljs-subst">{$lang}</span></span></span><span>.php";
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">file_exists</span></span><span>(</span><span><span class="hljs-variable">$filePath</span></span><span>)) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-keyword">include</span></span><span>(</span><span><span class="hljs-variable">$filePath</span></span><span>);
}
</span><span><span class="hljs-comment">// ဘာသာစကားဖိုင်မရှိပါက,အင်္ဂလိပ်ဖိုင်ကိုတင်ပါ</span></span><span>
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-keyword">include</span></span><span>(</span><span><span class="hljs-keyword">__DIR__</span></span><span> . </span><span><span class="hljs-string">'/lang/en.php'</span></span><span>);
}
</span><span><span class="hljs-variable">$errorMessages</span></span><span> = </span><span><span class="hljs-title function_ invoke__">loadErrorMessages</span></span><span>(</span><span><span class="hljs-variable">$lang</span></span><span>);
</span></span>
ဤနည်းအားဖြင့်အမှားအယွင်းတစ်ခုလိုအပ်သည့်အခါတိုင်းတိုင်းစာဖိုင်မှသက်ဆိုင်ရာအချက်ပေးအချက်အလက်များကိုသင်သာတင်ရန်လိုအပ်သည်။
MySQLI :: $ အမှားအယွင်းများကို ပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်မတူညီသောဒေသများရှိသုံးစွဲသူများအားသုံးစွဲသူများအားပိုမိုဖော်ရွေသောအမှားများကိုချက်ချင်းသတင်းအချက်အလက်ပေးနိုင်သည်။ ဘာသာစကားမျိုးစုံဖွံ့ဖြိုးတိုးတက်မှုတွင်ဤနည်းလမ်းကိုအသုံးပြုခြင်းသည်ဒေတာဘေ့စ်၏အမှားအချက်အလက်များကိုတိုက်ရိုက်ဖော်ထုတ်ခြင်းနှင့်သုံးစွဲသူအတွေ့အကြုံကိုတိုးတက်စေသည်။
သက်ဆိုင်သောတက်(ဂ်)များ:
mysqli