mysql-browser-connector/c.php
Przemek Grondek 0f18a99213 Time to POST it
Moved away from sending data in GET request and now using POST requests.
2014-09-16 11:24:13 +02:00

251 lines
6.0 KiB
PHP

<?php
class connector{
public $action;
public $server;
public $user;
public $password;
private $database;
private $link;
private $is_connected;
function connector($user, $password, $server){
$this->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();
?>