insert کردن

پرسیده شده
فعالیت 1240 روز پیش
دیده شده 465 بار
0

سلام وقت بخیر

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

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();
فایل پیوست

hamid mostafazadeh
hamid mostafazadeh

15 آذر 99

1
حذف شده

سلام و احترام

 

اصطلاح کد

توی کلاس 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]);

 

فایل پیوست

امیر صالحی

توسط

امیر صالحی

15 آذر 99

حذف شده
سلام اقای صالحی خسته نباشید - درست اینه که کلاس اتصال به دیتابیس یک کلاس جدا باشه و بقیه کلاس ها اونو ارث بری کنند ؟ ولی توی جلسات استاد آوند گفتن باید ارث بری از نوع هم باشه و اینجا حس میکنم یکی نیستن . یه توضیح دیگه میدین لطفا ؟
هادی قاسمی

19 تیر 00