MySQLに接続してJSON形式で吐き出す方法

動作環境

PHP Version 5.6.33

Apache Version 2.4.29

MySQL essential 5.1.63

 

※他環境では動作確認をしていませんのであしからず

 

目的

主にPCメインで行う入出庫及び在庫管理において

Android端末にて簡易的なアプリを作成する際

サーバのデータを取得する必要があった

 

データ取得のフロー

①Android端末で商品データを読み取り

②HTTP通信でサーバ内PHPファイルにアクセス

③PHPを実行しMySQLにアクセス

④取得したデータをJSON形式で出力

⑤Android端末でJSON形式を受取加工

 

 コード

<?php

//MySQLにログインするユーザーとパスワードを設定
define("USERNAME", "ユーザー名");
define("PASSWORD", "パスワード");

try{

//データベースに接続する情報の指定
$dbh = new PDO("mysql:host=サーバIP;dbname=データベース名;charset=utf8", USERNAME, PASSWORD);


$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// 静的プレースホルダを指定
$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

//実行したいSQL文を記述
$stmt = $dbh->prepare("実行したいSELECT文");

$stmt->setFetchMode(PDO::FETCH_ASSOC);

$stmt->execute();

$rows = array();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
$rows[]=$row;
}

//接続成功ならjson形式で吐き出します
echo $json = json_encode($rows);

} catch(PDOException $e){

//一応失敗時のメッセージを記入
echo "失敗時のメッセージ(なくていもいい)";
echo $e->getMessage();
}

$dbh = null;

?>

※この色はコメントですので不要です。

※この色の部分は環境に合わせて変えてください

 

動作確認

インターネットで

http://サーバIP/PHPファイル名.php

にアクセス

 

正しく実行できていれば

[{"no":18032201}]

といったJSON形式で表示されるはずです。

 

まとめ

今回私はこのコードを使って

Android端末でQRコードを読み取りPHPを経由して

MySQLサーバから在庫データの取得をしました。

また、このコードを応用すればSELECT文だけでなく

INSERT、UPDATE、DELETEもできます。

お試し下さい。