جلوگیری از تکرار

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

یعنی میشه به طور مثال
قبلا توی فایل های که مربوط به Functions SQL بود
خیلی از بخش ها توی همه Functions ها تکرار می شد
مثل 

 

global $conn;
یا
$stmt = $conn->prepare($sql);

که توی اکثر Functions ها تعریف شده بود توی یه کلاس مادر نوشت و قابلیت های اضافه که تکرار نمیشه مثل SQL رو توی یه کلاس جدا؟

 

 

فایل پیوست

2
حذف شده

سلام و احترام

یه چیزی شبیه به همین مثالی که شما زدید، برای مثال 

اومدم یک بار connection رو داخل construct  (متد construct وقتی که از کلاس یک آبجکت میسازیم اجرا میشه)یک بار ایجاد کردم و میتونم ازش داخل متدهای که وجود داره استفاده کنم

برای مثال داخل متد insert که یک دیتایی رو insert کنه اومدم از connection استفاده کردم. توی ویدیوهای بعدی کاملا متوجه این موارد میشید. سوالی هم اگه داشتید حتما مطرح کنید


    class DatabaseClass{	
	
        private $connection = null;

             // this function is called everytime this class is instantiated
        public function __construct( $dbhost = "localhost", $dbname = "myDataBaseName", $username = "root", $password    = ""){

            try{
			
                $this->connection = new PDO("mysql:host={$dbhost};dbname={$dbname};", $username, $password);
                $this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                $this->connection->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
				
            }catch(Exception $e){
                throw new Exception($e->getMessage());   
            }			
			
        }
		

        // Insert a row/s in a Database Table
        public function Insert( $statement = "" , $parameters = [] ){
            try{
				
                $this->executeStatement( $statement , $parameters );
                return $this->connection->lastInsertId();
				
            }catch(Exception $e){
                throw new Exception($e->getMessage());   
            }		
        }
       
        
                // execute statement
        private function executeStatement( $statement = "" , $parameters = [] ){
            try{
			
                $stmt = $this->connection->prepare($statement);
                $stmt->execute($parameters);
                return $stmt;
				
            }catch(Exception $e){
                throw new Exception($e->getMessage());   
            }		
        }
		
    }

مثال استفاده

$database = new DatabaseClass();
$database->insert(['test' => 'value1']);

 

فایل پیوست

امیر صالحی

توسط

امیر صالحی

12 مهر 00