Gehen Sie wie folgt
Schritt 1: öffnen config/app.php
Datasources
Array Finden und Remote Database
Konfiguration wie als Add -
'Datasources' => [
'default' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => false,
'host' => 'localhost',
'port' => '3306',
'username' => 'YOUR_DB_USER',
'password' => 'YOUR_DB_PASS',
'database' => 'YOUR_DB_NAME',
'encoding' => 'utf8',
'timezone' => 'UTC',
'flags' => [],
'cacheMetadata' => false,
'log' => false,
'quoteIdentifiers' => false,
'url' => env('DATABASE_URL', null),
],
'remote_db_1' => [ /*Remote Database 1*/
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => false,
'host' => '192.168.1.47', /*YOUR_REMOTE_SERVER_IP*/
'port' => '3306',
'username' => 'REMOTE_DB_USER',
'password' => 'REMOTE_DB_PASS',
'database' => 'REMOTE_DB_NAME',
'encoding' => 'utf8',
'timezone' => 'UTC',
'flags' => [],
'cacheMetadata' => false,
'log' => false,
'quoteIdentifiers' => false,
'url' => env('DATABASE_URL', null),
],
'remote_db_2' => [ /*Remote Database 2*/
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => false,
'host' => '192.168.1.47', /*YOUR_REMOTE_SERVER_IP*/
'port' => '3306',
'username' => 'REMOTE_DB_USER',
'password' => 'REMOTE_DB_PASS',
'database' => 'REMOTE_DB_NAME',
'encoding' => 'utf8',
'timezone' => 'UTC',
'flags' => [],
'cacheMetadata' => false,
'log' => false,
'quoteIdentifiers' => false,
'url' => env('DATABASE_URL', null),
],
Schritt 2: Jetzt yo u kann wie Remote database
in Ihrem Controller zugreifen as-
use Cake\Datasource\ConnectionManager;
use \PDO;
class YourController extends AppController{
public function getRemoteData(){
$conn1 = ConnectionManager::get('remote_db_1'); #Remote Database 1
$conn2 = ConnectionManager::get('remote_db_2'); #Remote Database 2
}
}
Hinweis: Jetzt Sie PDO
Methoden verwenden, können Sie auf Einfügen, Retrieve, Update
Beispiel:
class YourController extends AppController{
public function getRemoteData(){
$conn1 = ConnectionManager::get('remote_db_1'); #Remote Database 1
$sql = "SELECT * FROM users";
$query = $conn1->prepare($sql);
$query->execute();
$result = $query->fetchAll(); #Here is the result
}
}
Wenn Sie schreiben müssen in einer Tabelle in einer Datenbank können Sie auch ein Modell dafür erstellen ... Ich verstehe nicht den Teil, der keinem Modell zugeordnet ist. Es ist möglicherweise nicht Teil Ihrer Hauptdatenstruktur, aber es sind immer noch strukturierte Daten. – JvO
@JvO Danke für Ihre Antwort! Hier ist das Ding. Ich habe eine Website, die als Buchungsplattform für Hotelzimmer dient. Die Verfügbarkeit dieser Räume kann über die Website gesteuert und in meiner Datenbank gespeichert werden. Aber für einige Kunden möchte ich in der Lage sein, direkt mit ihrer privaten Datenbank zu verbinden und ihre Datensätze zu verwenden, um die Verfügbarkeit zu überprüfen. Muss ich für jeden Client ein benutzerdefiniertes Modell erstellen? – Cellydy
Bietet diese Kunden nicht eine API, auf die Sie zugreifen können? Warum würden Sie die Datenbank direkt abfragen? Nur neugierig – yBrodsky