9 define("DATABASE_USER", "aiclient");
11 define("DATABASE_PWD", "WhoAmI?");
13 define("DATABASE_NAME", "aimemory");
19 define("QUERY_CREATE_TABLE_MEMORY_TAG_ROOT", "
20 create table MemoryTagRoot (
21 uuid binary(16) primary key,
22 typeid binary(16) not null,
23 description text character set utf8 not null,
24 created_timestamp bigint,
25 modified_timestamp bigint,
26 data text character set utf8 not null,
31 define("QUERY_ADD_MTAG", "insert into MemoryTagRoot (
32 uuid, typeid, description, created_timestamp, modified_timestamp, data
34 unhex(replace(?, '-', '')), unhex(replace(?, '-', '')), ?, ?, ?, ?
36 define("QUERY_ADD_MTAG_TYPES", "sssiis");
38 define("QUERY_SELECT_ALL_MTAG", "select hex(uuid), hex(typeid), description, created_timestamp, modified_timestamp, data from MemoryTagRoot");
42 mysqli_report(MYSQLI_REPORT_ERROR);
47 if(isset($_GET['action'])){
48 $action = $_GET['action'];
49 if(strcmp($action, 'rebuild') == 0){
51 responseError("CEA95615-649C-4837-9E24-0C968FA57647", "OK");
52 } else if(strcmp($action, 'viewall') == 0){
53 $stmt = $db->prepare(QUERY_SELECT_ALL_MTAG);
56 $stmt->store_result();
57 if($stmt->errno != 0){
58 responseError("A0518702-C90C-4785-B5EA-1A213DD0205B");
61 $stmt->bind_result($uuid, $typeid, $desc, $cts, $mts, $data);
62 while($stmt->fetch()){
63 $uuid = strtolower($uuid);
65 echo(getFormedUUIDString($uuid));
67 echo(getFormedUUIDString($typeid));
79 echo($stmt->num_rows);
82 } else if(strcmp($action, 'viewallhtml') == 0){
83 $stmt = $db->prepare(QUERY_SELECT_ALL_MTAG);
86 $stmt->store_result();
87 if($stmt->errno != 0){
88 responseError("A0518702-C90C-4785-B5EA-1A213DD0205B");
91 $stmt->bind_result($uuid, $typeid, $desc, $cts, $mts, $data);
92 while($stmt->fetch()){
93 $uuid = strtolower($uuid);
95 echo(getFormedUUIDString($uuid));
97 echo(getFormedUUIDString($typeid));
109 echo($stmt->num_rows);
112 } else if(strcmp($action, 'add') == 0){
113 if(isset($_GET['uuid'])){
114 $uuid = $_GET['uuid'];
116 responseError("A0518702-C90C-4785-B5EA-1A213DD0205B", "uuid needed.");
118 if(isset($_GET['typeid'])){
119 $typeid = $_GET['typeid'];
121 responseError("A0518702-C90C-4785-B5EA-1A213DD0205B", "typeid needed.");
123 if(isset($_GET['desc'])){
124 $desc = $_GET['desc'];
126 responseError("A0518702-C90C-4785-B5EA-1A213DD0205B", "desc needed.");
128 if(isset($_GET['data'])){
129 $data = $_GET['data'];
131 responseError("A0518702-C90C-4785-B5EA-1A213DD0205B", "data needed.");
133 $stmt = $db->prepare(QUERY_ADD_MTAG);
134 //$uuid = "12363456-96EC-4E56-BC1F-B58DD0A76161";
135 //$typeid = "12323456-96EC-4E36-BC1F-B58DD0A76161";
136 $mts = getTimeStampMs();
139 $stmt->bind_param(QUERY_ADD_MTAG_TYPES, $uuid, $typeid, $desc, $mts, $mts, $data);
142 $stmt->store_result();
143 if($stmt->errno != 0){
144 responseError("A0518702-C90C-4785-B5EA-1A213DD0205B", mysqli_error($db));
152 responseError("B539657C-0FA6-49C2-AFB0-13AF5C7866ED");
154 function responseError($errid, $description = "")
156 die('["' . $errid .'","' . $description . '"]');
161 $db = new mysqli('localhost', DATABASE_USER, DATABASE_PWD, DATABASE_NAME);
163 if (mysqli_connect_error()) {
165 responseError("3A8CF3C8-E6B6-4A99-9134-343CA341B591", mysqli_connect_error());
169 $db->set_charset("utf8");
172 $stmt = $db->prepare("show tables");
175 $stmt->store_result();
176 if($stmt->errno != 0){
177 responseError("80FA2D65-9473-40B0-A3CE-159AE8E67017");
180 $stmt->bind_result($tablename);
182 while($stmt->fetch()){
183 if($tablename == "MemoryTagRoot"){
195 function rebuildDB($db)
199 $stmt = $db->prepare("drop table if exists MemoryTagRoot");
205 $stmt = $db->prepare(QUERY_CREATE_TABLE_MEMORY_TAG_ROOT);
211 function getFormedUUIDString($str)
213 $str = strtolower($str);
215 substr($str, 0, 8) . "-" .
216 substr($str, 8, 4) . "-" .
217 substr($str, 12, 4) . "-" .
218 substr($str, 16, 4) . "-" .
223 function getTimeStampMs()
225 return ceil(microtime(true)*1000);