見出し画像

サーバサイドの構成について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から。


画像1

ん。無事につながってるね。(取れてる取れてる)


ではファンクション。

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;
?>

画像3

帰ってきてる。


複数レコード返すプロシジャ。

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;
?>

画像3

オッケー。

JSONの形式間違っているかもだけど、まぁC#側で読み損ねてから考える!


次はtest.phpではなくて、ちゃんとした機能を作ってみましょう。


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



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