💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ hamid mostafazadeh
insert کردن
جامعه پی اچ پی ایجاد شده در ۱۵ آذر ۱۳۹۹

سلام وقت بخیر

 لیست یه سری دانشجو رو  کلاس بیس مدل گرفتیم 

class BaseModel
{
    protected $db;
    protected $table;
    protected $primaryKey = 'id';
    public function __construct()
    {
        try {
            $this->db = new PDO("mysql:dbname=idepazh;host=localhost", 'root', '');
            //  ok for test connect page 
            // echo "ok";
        } catch (PDOException $e) {
            die('Connection failed: ' . $e->getMessage());
        }
    }
    //getStudent
    public function getStudent()
    {
        $sql = "select * from {$this->table}";
        $stmt = $this->db->prepare($sql);
        $stmt->execute();
        return $stmt->fetchAll(PDO::FETCH_OBJ);
    }

 ، و در فایل زیر که توی یه پوشه دیگس صداش زدیم و مشکلی نداره  

 حالا سوال من اینه که چه تابعی برای "ایجاد" لیست دانشجویان که چند تا فیلد داره باید بنویسم ؟  که مثه همین تابع ارث بری کنه ؟ 

class student extends BaseModel
{
    protected $table = 'student' ;
    protected $primaryKey = 'id';
}
$student = new student();
$students = $student->getStudent();

سلام و احترام

 

اصطلاح کد

توی کلاس baseModel فقط عملیات مربوط به اتصال به دیتابیس رو قرار بدید. تابع getStudent در جای مناسبی قرار نداره.

شما میتونید تابع getStudent رو داخل کلاس Student که ایجاد کردید قرار بدید و اونو همونجا توسعه بدید.

 

توصیه

نحوه چینش کلاس‌ها اشتباهه ولی برای تمرینه همین خوبه و ادامه بدید در ادامه دوره یاد میگیرید که چه جوری یک orm بنویسید برای انجام عملیات دیتابیسی.

 

نحوه insert کردن student

می‌تونید یه تابع درون کلاس student به اسم create ایجاد کنید که ورودی اون یک آرایست و همون عملیاتی که برای ایجاد دیتا در دیتابیس با pdo انجام میدادید رو انجام بدید 

 

مثال کد insert کردن با PDO

$sql = "INSERT INTO users (name, surname, sex) VALUES (?,?,?)";
$stmt= $pdo->prepare($sql);
$stmt->execute([$name, $surname, $sex]);

 

امیر صالحی ۱۵ آذر ۱۳۹۹، ۱۷:۲۲