見出し画像

サーバサイドの構成について05 (ストアド呼出PHP)

いつもありがとうございます。

スキマ時間開発のお時間です。よろしくお願いします。


今回は、ファンクションを可変で呼び出して値取得です。


引数は可変長です。

<?php
require_once 'connectdb.php'; 

// URL引数からファンクション名を取得
if(isset($_GET['fnc'])) {
 $sql = "SELECT ".$_GET['fnc']."(";
}

// 引数の数だけループ
foreach($_REQUEST as $query => $value){
 
 // fncは読み飛ばす
 if($query == 'fnc') continue;
 
 // 引数が設定されている場合、設定されている順に設定する
 $sql .= (isset($value)) ? $value."," : '';
}

// 最後にカンマを排除
if($sql == $_GET['fnc']."(") {
 $sql .= ")";
} else {
 $sql = substr($sql,0,-1).')';
}

// SQLステートメントを実行し、結果を変数に格納
$stmt = $dbh->query($sql);

// データセットをjsonに変換
$jsonstr =  '{';
foreach ($stmt as $row) {
 $jsonstr .= $row[0];
}

// 最後にカンマを排除
if($jsonstr == '{') { 
 $jsonstr .= '}';
} else {
 $jsonstr = substr($jsonstr,0,-1).'}';
}

echo $jsonstr;
echo '<br>';
?>

とりあえず、エラーチェックもなしバージョン。


呼び出してみる。

画像1

画像2

ちゃんと取れるね。

プロシージャ版も同様に作成。(コード略)


次当たり、そろそろUNITY側に掛かれるか。


最後まで読んでいただきありがとうございました。

この記事が気に入ったらサポートをしてみませんか?