user = $user; $this->password = $password; $this->server = $server; $this->is_connected = false; } function connect(){ if(!$this->is_connected){ $this->link = @mysql_connect($this->server, $this->user, $this->password); if(!$this->link){ return 'CANNOT connect: '.mysql_error(); } else{ $this->is_connected = true; mysql_set_charset("utf8"); return 'OK'; } } } function selectDb($database){ $this->database = $database; mysql_select_db($this->database); } function dbList(){ $db_list = mysql_list_dbs($this->link); for($i = 0; $row = mysql_fetch_object($db_list);$i++) $list[$i] = $row->Database; return $list; } function tableList($database){ $result = mysql_list_tables($database); $num_rows = mysql_num_rows($result); for($i=0;$i<$num_rows;$i++) $list[$i] = mysql_tablename($result, $i); return $list; } function query($query){ $result = mysql_query($query); return $result; } function disconnect(){ if($this->link) mysql_close($this->link); } function selectTable($table, $start, $limit){ $query = "SELECT * FROM `$table` LIMIT $start, $limit"; $result_id = mysql_query($query); for($i=0;$row=mysql_fetch_row($result_id);$i++) $result[$i] = $row; return $result; } function fieldList($table){ $result_id = mysql_list_fields($this->database, $table); $numOfCols = mysql_num_fields($result_id); for($i=0;$i<$numOfCols;$i++) $result[$i] = mysql_field_name($result_id, $i); return $result; } function numRows($table){ $result_id = mysql_query("SELECT COUNT(*) as total_count FROM `$table`"); $ret = mysql_fetch_object($result_id); return $ret->total_count; } function updateElement($table, $headerJSON, $oldValuesJSON, $newValuesJSON){ $header = json_decode($headerJSON); $oldValues = json_decode($oldValuesJSON); $newValues = json_decode($newValuesJSON); $query = "UPDATE `$table` SET "; for($i = 0;$i < sizeof($header); $i++){ $query .= "`".$header[$i]."` = '".$newValues[$i]."' "; if($i+1 < sizeof($header)) $query .= ", "; } $query .= " WHERE ( "; for($i = 0;$i < sizeof($header); $i++){ $query .= "`".$header[$i]."` = '".$oldValues[$i]."' "; if($i+1 < sizeof($header)) $query .= " && "; } $query .= ");"; $result_id = mysql_query($query); if( !$result_id ){ echo mysql_error(); } $info = mysql_info(); echo $info ; } function addElement($table, $headerJSON, $valuesJSON){ $header = json_decode($headerJSON); $values = json_decode($valuesJSON); $query = "INSERT INTO `$table` ("; for($i = 0;$i < sizeof($header); $i++){ $query .= "`".$header[$i]."`"; if($i+1 < sizeof($header)) $query .= ", "; } $query .= ") VALUES ( "; for($i = 0;$i < sizeof($header); $i++){ $query .= "'".$values[$i]."' "; if($i+1 < sizeof($header)) $query .= " , "; } $query .= ");"; $result_id = mysql_query($query); if( !$result_id ){ echo mysql_error(); } else { echo OK; } $info = mysql_info(); echo $info ; } function removeElement($table, $headerJSON, $valuesJSON){ $header = json_decode($headerJSON); $values = json_decode($valuesJSON); $query = "DELETE FROM `$table` WHERE ("; for($i = 0;$i < sizeof($header); $i++){ $query .= "`".$header[$i]."` = '".$values[$i]."' "; if($i+1!=sizeof($header)) $query .= " AND "; } $query .= ");"; $result_id = mysql_query($query); if( !$result_id ){ echo mysql_error(); } else { echo OK; } } } $action = $_POST['a']; $server = 'localhost'; $user = $_POST['u']; $password = $_POST['p']; $database = $_POST['d']; $table = $_POST['t']; $start = $_POST['s']; $limit = $_POST['l']; $query = $_POST['q']; $header = $_POST['h']; $values = $_POST['v']; $oldValues = $_POST['o']; if(($user == null) || ($password == null) || ($action == null)) die('Nope'); $con = new connector($user, $password, $server); switch ($action){ case "login": echo $con->connect(); break; case "dblist": $con->connect(); $list = $con->dbList(); echo json_encode($list); break; case "tablelist": $con->connect(); echo json_encode($con->tableList($database)); break; case "fieldlist": $con->connect(); $con->selectDb($database); echo json_encode($con->fieldList($table)); break; case "numrows": $con->connect(); $con->selectDb($database); echo $con->numRows($table); break; case "query": $con->connect(); $con->query($query); break; case "getrows": $con->connect(); $con->selectDb($database); echo json_encode($con->selectTable($table, $start, $limit)); break; case "updateelement": $con->connect(); $con->selectDb($database); $con->updateElement($table, $header, $oldValues, $values); break; case "addelement": $con->connect(); $con->selectDb($database); $con->addElement($table, $header, $values); break; case "removeelement": $con->connect(); $con->selectDb($database); //print_r($_GET); $con->removeElement($table, $header, $values); } $con->disconnect(); ?>