![見出し画像](https://assets.st-note.com/production/uploads/images/56776179/rectangle_large_type_2_a40df3ecdc697dd283cbcbecdc5029ee.png?width=800)
サーバサイドの構成について04 (PHP-SQL)
いつもありがとうございます。
スキマ時間開発のお時間です。よろしくお願いします。
前回のあらすじ
WebサーバーがSSL化できたよ!
というわけで、PHPからのSQL呼出テストをしてみましょう。
まずはConnectionを作成。
connectdb.php
<?php
// データベースに接続するために必要なデータソースを変数に格納
$dsn = 'mysql:host=XXXXXXXXX;dbname=XXXXXXXXXXXXX;charset=utf8';
// データベースのユーザー名
$user = 'XXXXXXXX';
// データベースのパスワード
$password = 'XXXXXXXXXXXXXXX';
// tryにPDOの処理を記述
try {
// PDOインスタンスを生成
$dbh = new PDO($dsn, $user, $password);
// エラー(例外)が発生した時の処理を記述
} catch (PDOException $e) {
// エラーメッセージを表示させる
echo 'DB Connection Error!' . $e->getMessage();
// 強制終了
exit;
}
?>
テスト用のphpを作成。
test.php
<?php
require_once 'connectdb.php';
// SELECT文を変数に格納
$sql = "SELECT * FROM msts_area";
// SQLステートメントを実行し、結果を変数に格納
$stmt = $dbh->query($sql);
// データセットをjsonに変換テスト
$jsonstr = '{';
foreach ($stmt as $row) {
$jsonstr .= json_encode($row,JSON_UNESCAPED_UNICODE).',';
}
$jsonstr = substr($jsonstr,0,-1).'}';
echo $jsonstr;
?>
まずは単純にSELECTから。
ん。無事につながってるね。(取れてる取れてる)
ではファンクション。
test.php
<?php
require_once 'connectdb.php';
// SELECT文を変数に格納
// $sql = "SELECT * FROM msts_area";
$sql = "SELECT fnc_getArea(0,0)";
// SQLステートメントを実行し、結果を変数に格納
$stmt = $dbh->query($sql);
// データセットをjsonに変換テスト
$jsonstr = '{';
foreach ($stmt as $row) {
$jsonstr .= json_encode($row,JSON_UNESCAPED_UNICODE).',';
}
$jsonstr = substr($jsonstr,0,-1).'}';
echo $jsonstr;
?>
帰ってきてる。
複数レコード返すプロシジャ。
test.php
<?php
require_once 'connectdb.php';
// SELECT文を変数に格納
// $sql = "SELECT * FROM msts_area";
// $sql = "SELECT fnc_getArea(0,0)";
$sql = "CALL prc_get_trn_userdtl('test')";
// SQLステートメントを実行し、結果を変数に格納
$stmt = $dbh->query($sql);
// データセットをjsonに変換テスト
$jsonstr = '{';
foreach ($stmt as $row) {
$jsonstr .= json_encode($row,JSON_UNESCAPED_UNICODE).',';
}
$jsonstr = substr($jsonstr,0,-1).'}';
echo $jsonstr;
?>
オッケー。
JSONの形式間違っているかもだけど、まぁC#側で読み損ねてから考える!
次はtest.phpではなくて、ちゃんとした機能を作ってみましょう。
最後まで読んでいただきありがとうございました。
この記事が気に入ったらサポートをしてみませんか?