2011-12-27 10 views
0

私は2つのサーバーを持っています。サーバーAにはすべてのデータベースがあります。サーバBはサーバAにどのようにクエリを送信し、結果はfsockopen()で受信できますか? 現在、私は実際のテキストをソケットを通して渡すことができます(つまり、サーバーAのPHPコードがechoのようなものを出力する場合)。このオープンソケットのクエリ結果(リソース)をどのように通過させることができますか?PHPでリソースをfsockopen()に渡す

+0

ピザのスライスを教えてください。待って、私はそれをデジタルで送信することはできません。私は絵を送るだけです。それはちょうど良い、そうですか? – outis

+1

さらに真剣に言えば、ネットワーク経由でリソースを送信することは、ローカルパス名を送信するようなものです。他のコンピュータはファイルにアクセスしてファイルを見つけることができますが、コンピュータ上のファイルと同じではありません。 – outis

答えて

1

fsockopenのを使用すると、あなたがサーバーBのデータベースと通信することができます唯一の方法であるクエリの結果をシリアル化またはJSON形式でそれらをコードし、ソケットに書き込む場合は可能性があります。

は、あなたが直接問い合わせることができるだけので、サーバーAからMySQLサーバへの読み取り専用アクセス権を付与することはできませんか?それ以外の場合は、fsockopenの代わりにRESTサービスが適しています。それはとにかく、サーバーA上の任意の意味を持っていないよう

述べたように

は、あなたがソケット上のリソースを渡すことはできません。それをソケットに渡そうとすると、おそらく文字列(Resource#1)が返されます。

+0

RESTを使ってリソースを渡すにはどうすればいいですか? – YWSW

+1

任意の手段でリソースを渡すことはできません。それはスクリプトの有効期間中に作成されたphpスクリプト内からのみ有効です。サーバーAからデータベースと通信するための別の方法を考え出す必要があります。 – drew010

1

fwriteの/読み出し(バイナリ)文字列にデータを変換するので、あなたは、すぐにわかる経由PHP resource type*­Docs*を渡すことはできません。参照:リソース変数がリソースに変換し、開かれたファイル、データベース接続、イメージキャンバスエリアのように特別なハンドラを保持したよう

資源に変換

は意味がありません。

同じことは、例えば、何か他のものにリソースを変換するための真であります文字列。

0

何をしていますか?リモートのmysqlを許可して、データベースサーバにその仕事をさせてください。

関連する問題