آخر تابستونت رو متفاوت کن 🌟 ۳۰٪ تخفیف + هدیه ۳ میلیونی 🎁😉
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ امیر حسین رمضان زاده
بررسی کد زیر
جامعه برنامه نویسی وب ایجاد شده در ۱۱ مهر ۱۴۰۲

سلام؛ خسته نباشید من متد‌های crud خودم بصورت شخصی یچیزی درست کردم میخواستم نظرات دوستان رو راجب این متد‌ها بدونم .

 

public function insert(string $table, array $feilds , $values) : bool
    {
        $count = count($feilds);
        $prepare_repeat = chop(str_repeat('?,',$count),',');
        $feilds = implode(',',$feilds);
        $stmt = $this->conn->prepare("insert into $table ($feilds) values ($prepare_repeat)");
        $result = $stmt->execute($values);
        return $result;
    }
    public function update(string $table, array $feilds, array $values, string $where_conditional,array $where_value) : bool
    {
        $feilds = array_map(fn($item)=>"$item = ? ,",$feilds);
        $feilds = chop(implode('',$feilds),',');
        $feilds = chop($feilds,',');
        $where_value = array_map(fn($item)=>"'$item'",$where_value);
        $where_value = implode(',',$where_value);
        $stmt = $this->conn->prepare("update $table set $feilds where $where_conditional = $where_value");
        $result = $stmt->execute($values);
        return $result;
    }
    public function delete(string $table, string $where_conditional,array $where_value) : bool
    {
        $where_value = array_map(fn($item)=>"'$item'",$where_value);
        $where_value = implode(',',$where_value);
        $result = $this->conn->query("delete from $table where $where_conditional = $where_value");
        return $result;
    }
    public function select(string $table, array $feilds, string $where_conditional = null, array $where_value = null)
    {
        $feilds = implode(',',$feilds);
        if ($where_value === null and $where_conditional === null){ $result = $this->conn->query("select $feilds from $table");
        }
        if ($where_conditional !== null and $where_value !== null){
            $where_value = array_map(fn($item)=>"'$item'",$where_value);
            $where_value = implode(',',$where_value);
            $result = $this->conn->query("select $feilds from $table where $where_conditional = $where_value");
        }
        if (isset($result)){
            return $result->fetchAll(PDO::FETCH_OBJ);
        }
    }

سلام کد CRUD که ایجاد کرده‌اید به نظر می‌آید کاربردی و عملی باشد. این متدها به شما امکان انجام عملیات CRUD (ایجاد، خواندن، به‌روزرسانی و حذف) را بر روی داده‌های پایگاه داده با استفاده از PDO در PHP می‌دهند. در کلید‌واژه‌ای که شما انجام داده‌اید، می‌توان به موارد زیر اشاره کرد:

1. **`insert`**: این متد برای افزودن رکوردهای جدید به جداول دیتابیس استفاده می‌شود. از نظر امنیتی به نظر می‌آید که از مکانیزم تهیه‌ی متغیرهای پیش‌فرض PDO برای جلوگیری از حمله‌های SQL Injection استفاده کنید. این متد درست عمل می‌کند.

2. **`update`**: این متد برای به‌روزرسانی رکوردها در جداول دیتابیس استفاده می‌شود. نیاز به استفاده از تهیه‌ی متغیرهای پیش‌فرض PDO دارید تا از حمله‌های SQL Injection جلوگیری کنید. این متد نیز به نظر می‌آید که به درستی عمل کند.

3. **`delete`**: این متد برای حذف رکوردها از جداول دیتابیس استفاده می‌شود. مانند متدهای دیگر، به استفاده از تهیه‌ی متغیرهای پیش‌فرض PDO نیاز دارید.

4. **`select`**: این متد برای خواندن اطلاعات از جداول دیتابیس استفاده می‌شود. شما به خوبی با اضافه کردن شرط‌ها می‌توانید نتایج را فیلتر کنید. این متد به صورت پیش‌فرض نتیجه را به شیوه‌ی `FETCH_OBJ` برمی‌گرداند.

به طور کلی، کد شما به نظر می‌آید که برای اتصال به پایگاه داده و انجام عملیات CRUD از PDO استفاده کرده و از اصول امنیتی در تولید کوئری‌های SQL پیروی کرده‌اید. برای بهبود کد و افزایش کارایی ممکن است به افزودن برخی از ویژگی‌ها مانند افزودن پیام‌های خطا و استفاده از استثناها برای مدیریت خطاها کمک کند.

همچنین باید در نظر داشته باشید که این کد به صورت مستقیم با توجه به متغیرهای ورودی از تهیه‌ی کوئری‌های SQL برای انجام عملیات دیتابیس استفاده می‌کند، بنابراین باید مطمئن شوید که ورودی‌ها به درستی اعتبارسنجی شده و پاک‌سازی شده‌اند تا از حمله‌های امنیتی جلوگیری شود.

M.shehneh Sh ۱۱ مهر ۱۴۰۲، ۰۹:۳۲

ممنون میشم اگر دوستان دیگه هم همچین متد هایی آماده کردند ارسال کنند تا روش‌های مختلف رو بررسی کنیم .

امیر حسین رمضان زاده ۱۱ مهر ۱۴۰۲، ۱۵:۳۱