2016-05-10 33 views
0

まず、私はプログラミングの新機能です。別のサーバ(MSSQLのデータ)から特定のデータを要求し、MySQL DBに転送(挿入)したいのですが、この目的を達成するための適切な方法は何ですか?HTTPSからのPHPリクエストデータ

目的:

MSSQL側からのメンバーは、メンバー、MySQLへ ポイントの一定量を転送したいと思いでし一度ポイントを どれだけ彼らが持っていた点を、入力が成功したのMySQLへ転送されます通知スクリプトは、最後に更新のために をMSSQL側に送信します。

MySQLはこれらのデータを後で処理できるように、MSSQLの最後で生成する必要がありますか?どのように私はこれらのデータを取得するためのcURLを使用することができ、PHP処理終了の場合はhttps://www.example.com/request-transfer.aspx?id=12345&sym=hello&name=linda

:たとえば、私は、HTTPSリンクを

がありますか?

私はテストのために以下のスクリプトを持っていますが、$ _GETを使うだけでは不十分ですか?

// GET 
$id = $_GET['id']; 
$sym = $_GET['sym']; 
$name = $_GET['name']; 

$data = array("id" => $id, "sym" => $sym, "name" => $name); 
$data_string = json_encode($data); 

$ch = curl_init('http://localhost/test/process.php'); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json', 
    'Content-Length: ' . strlen($data_string)) 
); 
curl_setopt($ch, CURLOPT_TIMEOUT, 5); 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); 

//execute post 
$result = curl_exec($ch); 

//close connection 
curl_close($ch); 

$input = json_decode($data_string); 

echo $input->id.', '.$input->sym.', '.$input->name; 
echo $result; 

助言してください。

+0

は、あなただけの外部接続にMSSQLデータベースを開くことができませんか?あなたはそのサイトを制御しているようです –

+0

@ダゴン、私は外部使用のためにMSSQLを制御することができません。そのため私はhttp要求を必要としています – Lisa8

+0

[cURL](http://php.net/manual/de/book。 curl.php)。多くのプロバイダがそれを無効/ブロックすることに注意してください。スクリプトはどこで実行しますか? –

答えて

1

あなたのコードはこれまでのところokですが、ヘッダーを設定しないでください。それらはGET/POSTリクエストで自動的に設定されます。 PUTリクエストでのみ指定する必要があります。

JSONは$ _GET配列を直接ストリング化できます。これにより、任意のパラメータをリモートサイトに送信できます。有効なパラメータのみが送信されるようにしたい場合は、それを正しく実行したことになります。 GETパラメータが実際に存在するかどうかをテストするだけです。

あなたが繰り返し長い表現をしたくない場合は、短い関数を書くことができます:

function _GET() 
{ $n = func_num_args(); 
    for($i = 0 ; $i<$n ;) 
    { $key = func_get_arg($i++); 
    $array[$key] = isset($_GET[$key]) ? $_GET[$key] : ''; 
    } 
    return $array; 
} 

$data_string = json_encode(_GET('id', 'sym', 'name')); 
関連する問題