「Unity」 経営ゲーム開発 Part2
前から、
ネットをつなぐようなゲームを開発したいと思っていました。
んで、
今回は、ネットに関連したデータベースについての内容です。
ネットをつなぐようなゲームを開発したいんですが、
データベースの「デ」も知らない。
PHPって何?
PDO、MySQL、PostgreSQL、SQLite…知らない子ですね。
…っと、
酷い状態でして、今まで手が付けられませんでした。
なんとかしたいと思い、勉強した結果、
2週間ほどたってやっと、
Unityのボタンを押すことによって、PHPを連携しつつ、
データベースに文字を挿入することができました。
簡単に、ソースコードを載せます。
[注意]※の中には、各自の合ったものを入れて下さい。
すみませんが、
何かあると困るので※マークで伏せさせていただきます。
JavaScriptファイルです。
また、最後の print("Finished script"); は、
最後までスクリプトが通ったかをコンソールで確認する用です。
[unity_php_db.js]
***************************************************************************
#pragma strict
//unity⇒PHP⇒DBのテーブルにデータを書き込む処理
function Start(){}
function Update(){}
function Click(){
var url = "※※※※※";//※は、phpファイルの置き場所
var wwwForm:WWWForm = new WWWForm();
var name="testName";
var season="2";
var wincount="3";
var losecount = "4";
var rank = "5";
wwwForm.AddField("name", name);
wwwForm.AddField("season", season);
wwwForm.AddField("wincount", wincount);
wwwForm.AddField("losecount", losecount);
wwwForm.AddField("rank", rank);
var req : WWW = new WWW(url,wwwForm);
yield req;
if (req.error != null)
print(req.error);
else
print("Finished script");
}
***************************************************************************
このPHPファイルは、PDOを用いたMySQLを使用してます。
***************************************************************************
<?php
$dsn = "mysql:host=※※※※※;dbname=※※※※※";
//※は、データベース サーバとデータベース名
$user = "※※※※※";
//※は、ユーザー名
$password = "※※※※※";
//※は、パスワード
$name = $_POST["name"];
$season = $_POST["season"];
$wincount = $_POST["wincount"];
$losecount = $_POST["losecount"];
$rank = $_POST["rank"];
//データベースに接続する
try{
$dbh = new PDO($dsn, $user,$password);
}catch(PDOException $e){
exit("データベースに接続できませんでした。" . $e->getMessage());
}
//文字コードを指定
$stmt = $dbh->query("SET NAMES utf8");
//エラーが発生した際にエラーメッセージを表示
if (!$stmt) {
$info = $dbh->errorInfo();
exit($info[2]);
}
//SQL文
$sql = "insert into ※※※※※(name, season, wincount, losecount, rank)values(?, ?, ?, ?, ?)";//※は、テーブル名
//文を実行する準備を行い、文オブジェクトを返す
$stmt = $dbh -> prepare($sql);
//SQLを実行する
$stmt -> execute(array($name, $season, $wincount, $losecount, $rank));
//データベースとの接続を切断する
$dbh = null;
?>
***************************************************************************
以下の画像は、
Unity内のボタンを押す前と押した後のデータベースのテーブルです。
[user_tblの中身]
***************************************************************************
[Before]
[After]
***************************************************************************
はい。
こんな感じです。
idが7のやつは、もともと入れといたものです。
7からいきなり15に飛んでいるのは、何度も試していたからです。
うん。
0の知識の状態から、1から何かを学ぶことは大変でした。
分かってきて、出来ると楽しいですが、
この2週間で一気に老けた気分です。
まぁ、
そんなこんなでやっと1歩前進という感じです。
まだまだ、続きます。