ホームページ >バックエンド開発 >PHPチュートリアル >PDO で 2 つのデータベースを同時に操作したい場合、接続できる PDO は 2 つだけですか?

PDO で 2 つのデータベースを同時に操作したい場合、接続できる PDO は 2 つだけですか?

WBOY
WBOYオリジナル
2016-06-23 13:55:411080ブラウズ

こういう状況だから
メイン サイトは記事、メンバーなどを備えた CMS です

ただし、多くの異なるサブサイトが存在する場合もあります (特別なトピックとして考えてください)
そして、各サブサイトのコンテンツ構造も異なりますので、同じデータテーブルでは完成できず、各ブランチステーションには 7 ~ 8 個のデータベースが存在する可能性があります


ブランチが 50 個ある場合、300 ~ 400 以上のテーブルが使用されることになります

だからこそ、データベースを分離したい 処理中

$pdo = new PDO('mysql:host=localhost;dbname=cms', 'user','password');
$pdo_zt15 = new PDO('mysql:host=localhost;dbname) =zt15', ' user','password');

二つ同時に運用する理由は、サブサイト(子サイト)もメインサイトのデータベースの会員情報を利用する必要があるためです

データベースを同時に操作したいのですが、これが唯一の方法ですか?

それとも他の方法がありますか?


2 つのライブラリが同じ mysql 上にある場合サーバー上にあり、ユーザー名とパスワードが同じ場合は、テーブル名にアクセスするときにライブラリ名をテーブル名の前に付けることができます。テーブル名

同じサーバー上にあり、同じ名前とパスワードを使用している場合。

select * from DB1.table1,DB2.table2 ?? を使用できます。

複数の接続を作成する必要はありません。

2 つの単語の意味は...

たとえば、サブサイトのトピックに取り組んでいる場合...

メインサイトのユーザー情報を取得します: select * from cms.user

次に、これを使用します独自のトピックの情報を取得するには: select * from zt15.product

つまり $pdo は 1 つだけで十分ですよね

しかし

はすでに PDO に入力されています: dbname=cms

$pdo = new PDO(' mysql:host=localhost; 'user','password');


SQL ステートメントで
を使用しても大丈夫ですか?? ??: dbname=cms
$pdo = new PDO('mysql:host=localhost;dbname=cms', 'user','password');

で DB1.table1 を使用しても問題ありませんか?同じサーバー、同じアカウント、およびそのアカウントに両方のライブラリへのアクセス権限がある限り。それでおしまい。




声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。