• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
دسترسی به property از داخل متد استاتیک در کلاس
#1
سلام خسته نباشین دوستان یه مشکلی برایم پیش آمده توی دسترسی به اتصال به دیتابیس با متد استاتیک کد ها رو میذارم :
کد پی‌اچ‌پی:
<?php
/**
 * connection
 */
class BaseModel{
 
   private $host;
 
   private $password;
 
   private $username;
 
   private $dbname;

 
   public function __construct($host=HOST,$pass=PASSWORD,$user=USERNAME,$dbname=DBNAME){
 
       $this->host   $host;
 
       $this->pass   $password;
 
       $this->user   $username;
 
       $this->dbname $dbname;
 
   }

 
   protected function connect(){
 
       $conn = new PDO("mysql:host={$this->host};dbname={$this->dbname};charset=utf8"
 
       ,$this->user
        
,$this->pass);
 
       $conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
 
       return $conn;
 
   }

 
   public static function getrow(){
 
       //$conn = $this->connect();
 
       $query "SELECT * FROM `item`";
 
       $response $conn->prepare($query);
 
       if($response->execute()){
 
           $result $response->fetchAll();
 
       }else{
 
           $result false;
 
       }
 
       return $result;
 
   }


توی انین کلاس بنده یک متد دارم برای ارتباط به دیتابیس که مقدار ش برگشت داده می شه و در متد بعدی getrow می خوام وصل بشم به یکی از جداول دیتابیس  و رکوردها رو بخونم این متد رو می خوام به صورت استاتیک تعریف کردم چون قراره کار مشترکی رو انجام بده مشکل اصلی اینه که نمی تونم داخل این متد به متد اتصال به دیتابیس دسترسی داشته باشم  چون این متد از نوع استاتیک هستش و همونطور که می بینین کامنتش کردم هر کاری هم کردم آخرش نتونستن دسترسی بگیرم به مقدار برگشتی متد connect() متغییر استاتیک ایجاد کردم و مقدارشو از مقدار برگشتی connect گرفتم ولی زمانی که در متد getrow فراخوانی کردم (self::prepertname)دوباره ارور داد و متد prepare اجرا نشد  در حقیقت داخل این متد اصلا کانکشنی ست نمیشه لطفا راهنمایی کنین ... Heart Heart Heart
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان