OSDN Git Service

1946f81054085a67bfa489a770f7b57e257ef30e
[h58pcdgame/GameScriptCoreLibrary.git] / www / header.php
1 <?php
2 //
3 //定数宣言
4 //
5
6 //データベースユーザー名
7 define("DATABASE_USER", "pcd2013devUser");
8 //データベースパスワード
9 define("DATABASE_PWD", "MoonStone");
10 //データベース名
11 define("DATABASE_NAME", "pcd2013dev");
12
13 //データベース生成SQL
14 define("QUERY_CREATE_authUserTable", "");
15 define("QUERY_CREATE_stageObjectTable", "");
16
17 //SQL文 for authUserTable
18 define("QUERY_SELECT_USER_ID", "SELECT id from authUserTable where name = ?");
19 define("QUERY_SELECT_USER_ID_TYPES", "s");
20 define("QUERY_SELECT_USER_STAGE", "SELECT userStageName from authUserTable where id=?");
21 define("QUERY_SELECT_USER_STAGE_TYPES", "i");
22 define("QUERY_SELECT_USER_STAGE_AND_TIMESTAMP", "SELECT userStageName, lastResponseTimestamp from authUserTable where id=?");
23 define("QUERY_SELECT_USER_STAGE_AND_TIMESTAMP_TYPES", "i");
24 define("QUERY_ADD_USER", "insert into authUserTable (name, userStageName) values (?, ?)");
25 define("QUERY_ADD_USER_TYPES", "ss");
26 define("QUERY_UPDATE_USER_STAGE", "UPDATE authUserTable SET userStageName=? WHERE id=?");
27 define("QUERY_UPDATE_USER_STAGE_TYPES", "si");
28 define("QUERY_UPDATE_USER_TIMESTAMP", "UPDATE authUserTable SET lastResponseTimestamp=? WHERE id=?");
29 define("QUERY_UPDATE_USER_TIMESTAMP_TYPES", "ii");
30 define("QUERY_SELECT_USER_TIMESTAMP", "SELECT lastResponseTimestamp from authUserTable where id = ?");
31 define("QUERY_SELECT_USER_TIMESTAMP_TYPES", "i");
32 define("QUERY_DELETE_OFFLINE_USER", "DELETE from authUserTable WHERE lastResponseTimestamp<=?");
33 define("QUERY_DELETE_OFFLINE_USER_TYPES", "i");
34 //SQL文 for stageObjectTable
35 define("QUERY_ADD_OBJECT", "insert into stageObjectTable (locationX, locationY, velocityX, velocityY, stageName, className, objectAttribute, constructorArgs, ownerUserID, modifiedTimestamp, addedTimestamp) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
36 define("QUERY_ADD_OBJECT_TYPES", "ddddssssiii");
37 define("QUERY_DELETE_USER_OBJECT_ALL", "delete from stageObjectTable where ownerUserID=?");
38 define("QUERY_DELETE_USER_OBJECT_ALL_TYPES", "i");
39 define("QUERY_SELECT_ADDED_OBJECT", "SELECT id, locationX, locationY, velocityX, velocityY, className, objectAttribute, constructorArgs, ownerUserID FROM stageObjectTable WHERE stageName=? AND ownerUserID<>? AND addedTimestamp>? AND objectAttribute<>'Deleted'");
40 define("QUERY_SELECT_ADDED_OBJECT_TYPES", "sii");
41 define("QUERY_SELECT_UPDATED_OBJECT", "SELECT id, locationX, locationY, velocityX, velocityY, className, objectAttribute FROM stageObjectTable WHERE stageName=? AND ownerUserID<>? AND modifiedTimestamp>=? AND addedTimestamp<? AND objectAttribute<>'Deleted'");
42 define("QUERY_SELECT_UPDATED_OBJECT_TYPES", "siii");
43 define("QUERY_SELECT_DELETED_OBJECT", "SELECT id, locationX, locationY, velocityX, velocityY, className, objectAttribute FROM stageObjectTable WHERE stageName=? AND ownerUserID<>? AND modifiedTimestamp>=? AND objectAttribute='Deleted'");
44 define("QUERY_SELECT_DELETED_OBJECT_TYPES", "sii");
45 define("QUERY_UPDATE_STAGE_OBJECT", "UPDATE stageObjectTable SET locationX=?, locationY=?, velocityX=?, velocityY=?, objectAttribute=?, modifiedTimestamp=? WHERE stageName=? AND id=? AND objectAttribute<>'Deleted'");
46 define("QUERY_UPDATE_STAGE_OBJECT_TYPES", "ddddsisi");
47 define("QUERY_SELECT_ALL_OTHER_USER_OBJECT", "SELECT id, locationX, locationY, velocityX, velocityY, className, objectAttribute, constructorArgs, ownerUserID FROM stageObjectTable WHERE stageName=? AND ownerUserID<>? AND modifiedTimestamp>? AND objectAttribute<>'Deleted'");
48 define("QUERY_SELECT_ALL_OTHER_USER_OBJECT_TYPES", "sii");
49 define("QUERY_CHECK_AND_SET_DELETED_OBJECT", "UPDATE stageObjectTable SET objectAttribute='Deleted', modifiedTimestamp=? WHERE modifiedTimestamp<=? AND objectAttribute<>'Deleted'");
50 define("QUERY_CHECK_AND_SET_DELETED_OBJECT_TYPES", "ii");
51 define("QUERY_DELETE_OFFLINE_OBJECT", "DELETE from stageObjectTable WHERE modifiedTimestamp<=?");
52 define("QUERY_DELETE_OFFLINE_OBJECT_TYPES", "i");
53 //デフォルト開始ステージ名
54 define("DEFAULT_START_STAGE", "cselect");
55
56 //生存期間(ミリ秒)
57 define("OBJECT_ALIVE_TIME_MS", 2000);
58 define("OBJECT_DELETE_TIME_MS", 30000);
59 define("USER_ALIVE_TIME_MS", 2000);
60 define("USER_DELETE_TIME_MS", 30000);
61
62 function escapeMySQLArgumentString(&$str)
63 {
64         $str = str_replace("\\", "", $str);
65         $str = str_replace("\"", "", $str);
66         $str = str_replace("'", "", $str);
67         $str = str_replace("¥", "", $str);
68         $str = str_replace("|", "", $str);
69 }
70
71 function updateUserTimestamp($db, $userID)
72 {
73         $stmt = $db->prepare(QUERY_UPDATE_USER_TIMESTAMP);
74         $stmt->bind_param(QUERY_UPDATE_USER_TIMESTAMP_TYPES, getTimeStampMs(), $userID);
75         $stmt->execute();
76         //エラーチェック省略
77         $stmt->close();
78 }
79
80 function getUserLastResponseTimestamp($db, $userID)
81 {
82         $ts = 0;
83         $stmt = $db->prepare(QUERY_SELECT_USER_TIMESTAMP);
84         $stmt->bind_param(QUERY_SELECT_USER_TIMESTAMP_TYPES, $userID);
85         $stmt->execute();
86         if($stmt->errno == 0){
87                 //クエリ成功
88                 $stmt->store_result();
89                 // 結果の個数を確認
90                 if($stmt->num_rows != 0){
91                         //結果格納
92                         $stmt->bind_result($ts);
93                         $stmt->fetch();
94                 }
95         }
96         $stmt->close();
97         return $ts;
98 }
99
100 function getTimeStampMs()
101 {
102         return ceil(microtime(true)*1000);
103 }
104
105 ?>