نمایش نتایج 1 تا 4 از 4

نام تاپیک: این درسته که اگه توی چند تابع، چند اتصال به دیتابیس ایجاد کنیم، mysql فقط اولین اتصال رو انجام می ده

  1. #1

    این درسته که اگه توی چند تابع، چند اتصال به دیتابیس ایجاد کنیم، mysql فقط اولین اتصال رو انجام می ده

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

  2. #2

    نقل قول: این درسته که اگه توی چند تابع، چند اتصال به دیتابیس ایجاد کنیم، mysql فقط اولین اتصال رو ان

    شما فقط باید یکبار اتصال رو به دیتابیس برقرار کنید و این روش به نظر من روش درستی نیس.
    اگر از MVC استفاده میکنید یک کلاس برای کار با دیتابیس بسازید و همون رو داخل کلاسهای دیگه اینکلود کنید یا ارث بری کنید.

    بازم اگه امکان داره کدهات رو بزار بهتر میشه نظر داد


    موفق باشی

  3. #3

    نقل قول: این درسته که اگه توی چند تابع، چند اتصال به دیتابیس ایجاد کنیم، mysql فقط اولین اتصال رو ان

    نقل قول نوشته شده توسط khoda2006 مشاهده تاپیک
    شما فقط باید یکبار اتصال رو به دیتابیس برقرار کنید و این روش به نظر من روش درستی نیس.
    اگر از MVC استفاده میکنید یک کلاس برای کار با دیتابیس بسازید و همون رو داخل کلاسهای دیگه اینکلود کنید یا ارث بری کنید.

    بازم اگه امکان داره کدهات رو بزار بهتر میشه نظر داد


    موفق باشی
    من از mvc استفاده می کنم. مشکلم اینه که سسشن ها رو توی دیتابیس ذخیره می کنم، کلاس سسشن توی یه فایل جدا هست که باید اینکلود بشه و توابع مدل هم توی یه فایل جدا هستن و اونها هم باید اینکلود بشن !

    وقتی کتابخانه مدل که کدهاش رو در ادامه نوشتم، اینکلود می کنم تابع setdb رو اجرا می کنم و یه اتصال به دیتابیس ایجاد می کنم تا بقیه کدها بدون مشکل به دیتابیس وصل بشن.

    برای انجام کوئری ها در حالتهای مختلف توابعی ایجاد کردم که هر کدوم کار خاصی انجام می دن. همونطور که می بینید توی این توابع حتما باید setdb اجرا بشه تا توابع بتونن به لینک ایجاد اتصال دسترسی پیدا کنن. اگر توی یه اسکریپت چند بار این توابع استفاده بشن، هر بار باید تابع setdb اجرا بشه !



    <?php
    class model
    {
    private $db;
    public function startdb()
    {
    $stri = new mysqli(HOST,USER,PASS,DATABASE);
    $stri->set_charset('UTF8');
    return $stri;
    }
    private function setdb()
    {
    $this->db=$this->startdb();
    }
    //تابع مربوط به اجراي کوئري ها بدون نياز به فيلتر
    public function noinj($sql)
    {
    $this->db=$this->startdb();
    $this->db->query($sql);
    }
    //سلکت کردن و شماردن رديفها
    public function sum_rows($sql)
    {
    $this->db=$this->startdb();
    $result=$this->db->query($sql);
    $num=$result->num_rows;
    $rows=$result->fetch_assoc();
    $row[num]=$num;
    $row[row]=$rows;
    return $row;
    }
    }
    $mymodel = new model();
    ?>


  4. #4

    نقل قول: این درسته که اگه توی چند تابع، چند اتصال به دیتابیس ایجاد کنیم، mysql فقط اولین اتصال رو ان

    1 - اینکه شما دستورات مربوط به اتصال به دیتابیس رو در سازنده کلاس که بنویسی نیازی نیست توی همه متدها دوباره اتصال رو برقرار کنی.


    2 - برای کلاس session که میگی نیاز داره به کلاس مدل ، کلاس سشن رو از کلاس مدل ارث بری کن.


    class model
    {
    public function _-construct()
    {
    ///mysql_connect code
    }
    }




    class session extends model
    {

    public function __construct()
    {
    parent::__constrsuct ();
    }


    }

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •