ver.1サポートサイト


DB情報取得(PHP)

最終更新日:2023年03月08日

データベースの情報を取得するサンプルプログラムです。

本サンプルプログラムは外部呼出し(スパイラル以外のサーバから動作させる場合)と内部呼出し(スパイラル内部で動作させる場合)と分けて記載をしています。

利用する用途によって使用するサンプルプログラムの使い分けを行ってください。

※外部呼出しに利用するサンプルプログラムにはスパイラル内のWebコンポーネントで使用できない関数などが含まれる場合がありますのでご注意ください。

使用できないPHPの関数について、PHP利用時の注意事項をご覧ください。

※内部呼出しを利用する場合はアカウント内APIの設定を「ON」に変更する必要があります。

外部呼出しを利用する場合

<?php
// サービス用のURL (ロケータから取得できる)
$api_url = "https://xxxxx.smp.ne.jp/api/service";
$api_token = "00000XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
$api_secret = "000000000000000000000000000000000abcdef";

// -----------------------------------------------------------------------------
// スキーマ情報を取得
// -----------------------------------------------------------------------------

// API用のHTTPヘッダ
$api_header = "";
$api_header .= "X-SPIRAL-API: database/get/request\r\n";
$api_header .= "Content-Type: application/json; charset=UTF-8\r\n";

// 送信するJSONデータを作成
$parameters = array();
$parameters["spiral_api_token"] = $api_token;
$parameters["passkey"] = time();

// 署名を付けます
$key = $parameters["spiral_api_token"] . "&" . $parameters["passkey"];
$secret = $api_secret;
$parameters["signature"] = hash_hmac('sha1', $key, $secret, false);

// スキーマ情報を取得するDBタイトル
$parameters["db_title"] = "api_table1";
$json = json_encode($parameters);

// POSTで送信します。
$stream = stream_context_create(
    array('http' => array(
        'method' => 'POST',
        'protocol_version' => '1.0',
        'header' => $api_header,
        'content' => $json
    ))
);

// レスポンスデータ読み込み
$response = file_get_contents($api_url, false, $stream);

// 画面に表示
print_r(json_decode($response, true));
?>

内部呼出しを利用する場合

<?php
// APIコミュニケータをセット
$api_communicator = $SPIRAL->getSpiralApiCommunicator();

//========================================
// DB情報取得
//========================================

// リクエストパラメータのセット
$request = new SpiralApiRequest();
$request->put("db_title", "xxxxxxxxx");

// スパイラルAPIサーバへリクエストを送信
$response = $api_communicator->request("database", "get", $request);

// レスポンスの取得
if ($response->get("code") == 0) {
    echo "<p>database/get 正常終了。(code:" . $response->get("code") . ")</p>";
} else {
    echo "<p>database/get エラーが発生しました。(code:" . $response->get("code") . ")</p>";
}
print_r($response);
?>