DeveloperS သည် developments မရရှိနိုင်သည့်အခြေအနေများကို အသုံးပြု. developmers များသည်တစ်ခါတစ်ရံတွင်အခြေအနေများကြုံတွေ့ရသည်။ ဘုံထင်ရှားပြခြင်းသည် Controller နည်းလမ်းကိုအချက်အလက်ရယူရန်တောင်းဆိုသည့်အခါပြန်လာသည့်တန်ဖိုးသည် NULL သို့မဟုတ်အချည်းနှီးသောခင်းကျင်းဖြစ်သည်။ ဤပြ problem နာအတွက်အကြောင်းပြချက်သည်များသောအားဖြင့် data layer သို့မဟုတ် model အလွှာ၏ configurations နှင့်ဆက်စပ်သည်။
The TerryPhp မူဘောင်တွင်ဒေတာဘေ့စ်ဆက်သွယ်မှုသတင်းအချက်အလက်များကို `/ config` လမ်းညွှန်အောက်ရှိ configuration file တွင်သတ်မှတ်ရန်လိုအပ်သည်။ ပထမ ဦး စွာသင်သည်ဤပြင်ဆင်မှုအချက်အလက်မှန်ကန်မှုရှိမရှိအတည်ပြုရန်လိုအပ်သည်။
ဤတွင်ဒေတာဘေ့စ် configuration file ၏ပုံမှန်ဥပမာတစ်ခုဖြစ်သည်။
// /config/database.php
return [
'type' => 'mysql', // ဒေတာဘေ့စ်အမျိုးအစား
'hostname' => '127.0.0.1', // ဆာဗာလိပ်စာ
'database' => 'thinkphp', // ဒေတာဘေ့စ်အမည်
'username' => 'root', // အသုံးပြုသူ
'password' => 'root', // လှျို့ဝှက်စကား
'hostport' => '3306', // သငေ်္ဘာဆိပ်ကမ်း
'charset' => 'utf8mb4', // ဇာတ်ကောင်အစုံ
'prefix' => '', // ဒေတာဘေ့စ်စားပွဲရှေ့ဆက်
'debug' => true, // ဒေတာဘေ့စ် debugging mode ကို
];
ဒေတာဘေ့စ်ဆက်သွယ်မှုသည်ပုံမှန်ဖြစ်ရန်သေချာစေရန် command line သို့မဟုတ် phpmyadmin မှတစ်ဆင့် connection test ကိုလုပ်ဆောင်နိုင်သည်။ အကယ်. စမ်းသပ်မှုလွန်သွားလျှင်ဒေတာဘေ့စ်၏ဆက်သွယ်မှုဆိုင်ရာပြ issues နာများကိုဖြေရှင်းနိုင်သည်။
ဥပမာ, Terminal ရှိဒေတာဘေ့စ် connection ကိုစမ်းသပ်ရန်အောက်ပါ command ကိုသုံးပါ။
mysql -u root -p root -h 127.0.0.1 -P 3306
Controller ရှိမော်ဒယ်နည်းလမ်းကိုခေါ်ဆိုသည့်အခါနည်းစနစ်အမည်နှင့်မော်ဒယ်ဖိုင်အမည်မှန်ကန်ကြောင်းသေချာအောင်လုပ်ပါ။ ဤတွင် Controller Code ဥပမာတစ်ခုဖြစ်သည်။
namespace app\index\controller;
use app\index\model\User;
class Index
{
public function index()
{
$userModel = new User();
$user = $userModel->findUserById(1);
dump($user); // nullသို့မဟုတ်ဗလာခင်းကျင်း
}
}
မော်ဒယ်, ဒေတာဘေ့စ်စားပွဲအမည်များ, မူလတန်းသော့အမည်များ, စသည်တို့ကိုမှန်ကန်စွာသတ်မှတ်ရန်လိုအပ်သည်။ ဤတွင်ပုံမှန်စံပြကုဒ်ကိုဥပမာတစ်ခု -
namespace app\index\model;
use think\Model;
class User extends Model
{
protected $table = 'user'; // ဇယားနာ
protected $pk = 'id'; // မူလစာမျက်နှာ
public function findUserById($id)
{
$user = $this->where('id', $id)->find();
return $user;
}
}
ဒေတာဘေ့စ်ကိုမေးမြန်းသောအခါ SQL ကြေငြာချက် syntax သည်မှန်ကန်ကြောင်းသေချာပါစေ။ SQL ထုတ်ပြန်ချက်များကို PHPMYADMIN မှတဆင့်ကိုယ်တိုင်ပြုလုပ်နိုင်သည် (သို့) မူဘောင်မှပေးသော debugging tools များကို အသုံးပြု. သူတို့ကိုစစ်ဆေးနိုင်သည်။
$sql = 'SELECT * FROM user WHERE id = ?';
$user = $this->query($sql, [1]);
အထက်ပါနည်းလမ်းများမှတဆင့်ကျွန်ုပ်တို့သည် The TerryPhp မူဘောင်တွင်အချက်အလက်မရရှိနိုင်သောပြ problem နာကိုဖြေရှင်းနိုင်သည်။ များသောအားဖြင့်ပြ problem နာသည်ကုဒ်သို့မဟုတ်ဒေတာဘေ့စ် configuration တွင်တည်ရှိသည်။ developer များကကုဒ်အရည်အသွေးကိုတိုးတက်စေရန်ပုံမှန်ကုဒ်ကိုပုံမှန်စစ်ဆေးသင့်ပြီးဖွံ့ဖြိုးတိုးတက်မှုထိရောက်မှုကိုတိုးတက်စေရန်ပြ problem နာဖြေရှင်းနိုင်သည့်စွမ်းရည်များကိုအားဖြည့်ပေးသင့်သည်။