Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

केकपीएचपी में एक मॉडल के लिए गतिशील रूप से एकाधिक डेटाबेस का उपयोग कैसे करें

यह सज्जन (Olivier ) एक ही समस्या थी! (एक साल पहले) उन्होंने लिखा Controller . के लिए एक छोटा सा अनुकूलन एस! यह बहुत छोटा है और पता चला है, यह 1.3 . में काम करता है और 2.x

वैसे भी, यह मेरा अंतिम समाधान है, जिसे मैंने app/Model/AppModel.php में डाला है :

class AppModel extends Model
{
  /**
   * Connects to specified database
   *
   * @param String name of different database to connect with.
   * @param String name of existing datasource
   * @return boolean true on success, false on failure
   * @access public
   */
    public function setDatabase($database, $datasource = 'default')
    {
      $nds = $datasource . '_' . $database;      
      $db  = &ConnectionManager::getDataSource($datasource);

      $db->setConfig(array(
        'name'       => $nds,
        'database'   => $database,
        'persistent' => false
      ));

      if ( $ds = ConnectionManager::create($nds, $db->config) ) {
        $this->useDbConfig  = $nds;
        $this->cacheQueries = false;
        return true;
      }

      return false;
    }
}

और यहां बताया गया है कि मैंने इसे अपने app/Controller/CarsController.php . में कैसे इस्तेमाल किया :

class CarsController extends AppController
{
  public function index()
  {
    $this->Car->setDatabase('cake_sandbox_client3');

    $cars = $this->Car->find('all');

    $this->set('cars', $cars);
  }

}

मैं शर्त लगा रहा हूं, मैं इस समस्या के साथ पहला या आखिरी नहीं हूं। इसलिए मुझे उम्मीद है कि यह जानकारी लोगों और केकपीएचपी समुदाय को मिलेगी।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CentOS 6 पर phpMyAdmin को कैसे स्थापित और कॉन्फ़िगर करें?

  2. यदि मौजूद है तो मैं कैसे अपडेट करूं, यदि नहीं तो सम्मिलित करें (AKA upsert या merge) MySQL में?

  3. JDBC इंटरफ़ेस के माध्यम से MySQL में UTF-8 स्ट्रिंग्स को सही ढंग से कैसे लिखें?

  4. एक आरईएसटी एपीआई कैसे लिखें?

  5. MySQL प्रतिकृति सर्वोत्तम अभ्यास