Mysql
 sql >> база данни >  >> RDS >> Mysql

Свържете се с множество бази данни в CakePHP 3

Трябва да следвате стъпките по-долу за използване на множество източници на данни в едно и също приложение cakephp.

Споменете множество източник на база данни в Config/app.php

Трябва да управлявате множество конфигурации на източници на данни, в източника на данни по подразбиране да запазите основната база данни и да направите още един източник на данни, можем да го кажем история за втори източник на данни. Както е посочено по-долу

'Datasources' => [
    'default' => [
        'className' => 'Cake\Database\Connection',
        'driver' => 'Cake\Database\Driver\Mysql',
        'persistent' => false,
        'host' => '<host name>',
        'username' => '<database user>',
        'password' => '<database password>',
        'database' => '<database name>',
        'encoding' => 'utf8',
        'timezone' => 'UTC',
        'flags' => [],
        'cacheMetadata' => true,
        'log' => false,
        'quoteIdentifiers' => false,
        'url' => env('DATABASE_URL', null),
    ],
    'history' => [
        'className' => 'Cake\Database\Connection',
        'driver' => 'Cake\Database\Driver\Mysql',
        'persistent' => false,
        'host' => '<host name>',
        'username' => '<database user>',
        'password' => '<database password>',
        'database' => '<database name>',
        'encoding' => 'utf8',
        'timezone' => 'UTC',
        'flags' => [],
        'cacheMetadata' => true,
        'log' => false,
        'quoteIdentifiers' => false,
        'url' => env('DATABASE_URL', null),
    ]
]

Посочете източник на данни в класове на таблици

В Src/Model/Table/<AnyOtherSource>Table.php , Добавете по-долу метод, където искате да използвате източник на данни за историята. Няма нужда да добавяте метод по-долу, където трябва да използвате източник на данни по подразбиране, за източник на данни по подразбиране CakePHP ще се погрижи за това.

public static function defaultConnectionName() {
    return 'history';
}

Присъединяване и асоцииране на модел в CakePHP 3

Добавете кода по-долу в Src/Model/Table/<All>Table.php

class LogsTable extends Table {

    public function initialize(array $config) {
        parent::initialize($config);

        $this->table($this->connection()->config()['database'] . "." . $this->table()); // this is very important for joining and associations.

        // your other code for initilize method
    }

    public static function defaultConnectionName() {
        return 'history';
    }

    // other methods and your code should be here

}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Избор от две таблици с вътрешно присъединяване и ограничение

  2. Грешка при изпълнение на SQL скрипт; Процесът не може да получи достъп до файла, защото се използва от друг процес:'C:\\Users\\......\....cnf'

  3. MySQL DATEDIFF() срещу TIMESTAMPDIFF():Каква е разликата?

  4. ГРЕШКА 2002 (HY000):Не мога да се свържа с локален MySQL сървър чрез сокет '/var/lib/mysql/mysql.sock'

  5. MYSQL:Таблица с последователни номера