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もできます。
お試し下さい。