私は少し問題があります。私はPDO
ラッパーを書いて、自分のデータベースでクエリを実行できるようにしました。単一のPDOインスタンスで複数のデータベースを処理する方法は?
私のアプリケーションはマルチテナントです。つまり、別のデータベースが必要です。
(1) Main Db
(n) Tenant DB
だから私は、私はすべての私の会社をしたメインデータベースをしました、そしてnは私が資格情報とユーザ企業の情報をログインしましデータベース:データソースの構造は、このように構成されています。
私のアプリケーションは、私はそうのような私のDBラッパー呼び出し開始:
$this->db = new Database('host', 'name', 'user', 'pass');
whisが私index.php
で私のデフォルトの設定でインスタンスを作成します。私のユーザーがログインすると、彼のデータベースの接続設定がグローバル変数に格納されます。
問題は、私のconfig.phpデータベース認証情報を使用する必要があるためです。そのため、各モデルメソッドでデータベースオブジェクトを何度も再宣言する必要があります。このシナリオは痛みです。
私はこれを解決するために何ができますか?
さまざまなdbsがすべてシステムDBサーバにあり、SAMEユーザ/パスを使用してそれらにアクセス権を与えることができる場合は、 'select dbname.tablename.field、otherdb.othertable.otherfield from dbname.table ...タイプのもの。しかし、それらが異なったdbs(例えばmysqlとpostgres)で、そして/またはあなたがそれぞれ異なる資格を使用する必要があるならば、2つの+ pdoオブジェクトを持たなければなりません。 –
素晴らしいソリューションですが、私は別のサーバーファームを持っていますか? – user3287550