PHP
MySQL
JSON
cocos2d-x

Cocos2d-xのサーバー通信方法(JSON+PHP+MySQL) Part2

More than 1 year has passed since last update.

前回のCocos2d-xのサーバー通信方法(JSON+PHP+MySQL) Part1の続き

今回の内容

  • リクエストURLのPHP作成

準備する事

  • レンタルサーバーまたはPHP、MySQLが使用できるサーバーを借りる
  • MySQLのユーザー登録、テーブル作成、フィールド作成
  • PHPファイルの作成環境、アップロード環境の構築

PHPファイル作成

sample.php
<?php
//HTTPリクエストから送られた文字データを受け取りJSON形式に変換
$postData = file_get_contents("php://input");
$inputData = json_decode($postData, true);

if ($inputData == NULL) { exit; }

//データベースアクセス
try {
    $pdo = new PDO('mysql:host=localhost;dbname=[データベース名];charset=utf8','ユーザー名','パスワード');
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
} catch (PDOException $Exception) { exit; }

//$inputDataは連想配列。JSONを作る時の[Key]にて値を変数に入力
$str = $inputData["str"];
$val1 = $inputData["val1"];
$val2 = $inputData["val2"];

//SQL文を作りMySQLにINSERTする
$sql = "INSERT INTO user (field1, field2, field3, date) VALUES (?, ?, ?, ?)";
$stmh = $pdo->prepare($sql);
$stmh->bindValue(1, $str);
$stmh->bindValue(2, $val1);
$stmh->bindValue(3, $val2);
$stmh->bindValue(4, date('c'));
$stmh->execute();
$pdo->null;

PHPはCocos2d-xのHTTPリクエストから送られたJSON文字列を連想配列に変換
その後にデータベースに書き込む

PHPをサーバーにアップロード

作成したPHPファイルをサーバーにアップロードする
アップロードされたPHPファイルのパスを調べhttp://~/sample.phpまたはhttps://~/sample.phpのURLにする
~は自身のドメイン、フォルダ名になる

URLを記入

Cocos2d-xのサーバー通信方法(JSON+PHP+MySQL) Part1にて
作成したHTTPリクエストのリクエストURLに調べたURLを記入

request->setUrl("https://~/sample.php");

Cocos2d-xにてHTTPリクエストを送るとMySQLのデータベースに入力される

実用例

  • ユーザー登録
  • ユーザーランキング

応用すればいろんなデータを送信することが可能

Part3

次回はデータベースのデータ受信