![見出し画像](https://assets.st-note.com/production/uploads/images/56780556/rectangle_large_type_2_b5ffb6d6c257d82f61d95e65e9f9e4a8.png?width=800)
サーバサイドの構成について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>';
?>
とりあえず、エラーチェックもなしバージョン。
呼び出してみる。
ちゃんと取れるね。
プロシージャ版も同様に作成。(コード略)
次当たり、そろそろUNITY側に掛かれるか。
最後まで読んでいただきありがとうございました。
この記事が気に入ったらサポートをしてみませんか?