Revision: 11987
Updated Code
at February 26, 2009 07:26 by jonniespratley
Updated Code
<?php
/**
*
* @name MySQLRESTService
* @author Jonnie Spratley
* @version 1.0
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
//echo header('Content-type: application/x-json');
require_once 'library/MySQLService.php';
require_once 'library/FileSystemService.php';
$f = new FileSystemService ( );
error_reporting ( E_ERROR | E_USER_ERROR | E_PARSE );
if ( isset ( $_REQUEST[ 'h' ] ) )
{
$host = $_REQUEST[ 'h' ]; //Host
}
if ( isset ( $_REQUEST[ 'u' ] ) )
{
$user = $_REQUEST[ 'u' ]; //User
}
if ( isset ( $_REQUEST[ 'p' ] ) )
{
$pass = $_REQUEST[ 'p' ]; //Password
}
if ( isset ( $_REQUEST[ 'm' ] ) )
{
$mode = $_REQUEST[ 'm' ]; //Mode
}
if ( isset ( $_REQUEST[ 'd' ] ) )
{
$database = $_REQUEST[ 'd' ]; //Database
}
if ( isset ( $_REQUEST[ 't' ] ) )
{
$table = $_REQUEST[ 't' ]; //Table
}
if ( isset ( $_REQUEST[ 'q' ] ) )
{
$query = $_REQUEST[ 'q' ]; //Query
}
//$user = $_REQUEST[ 'u' ]; //Username
//$pass = $_REQUEST[ 'p' ]; //Password
//$database = $_REQUEST[ 'd' ]; //Database
//$table = $_REQUEST[ 't' ]; //Table
//$mode = $_REQUEST[ 'm' ]; //Mode
//$query = $_REQUEST[ 'q' ]; //Query
$service = new MySQLService ( $host, $user, $pass );
//Switch depending on mode
switch ( $mode )
{
case 'ping' :
$db = $service->ping ();
echo $db;
break;
/*********************************************
* ANALYZE/OPTIMIZE/CHECK/REPAIR TABLES
*********************************************/
case 'analyzeTable' :
$db = $service->analyzeTable ( $database, $table );
echo $db;
break;
case 'optimizeTable' :
$db = $service->optimizeTable ( $database, $table );
echo $db;
break;
case 'checkTable' :
$db = $service->checkTable ( $database, $table );
echo $db;
break;
case 'repairTable' :
$db = $service->repairTable ( $database, $table );
echo $db;
break;
/*********************************************
* CREATE DATEBASE/TABLE/USER
*********************************************/
case 'createDatabase' :
$db = $service->createDatabase ( $database );
echo $db;
break;
case 'createTable' :
$db = $service->createTable ( $database, $table );
echo $db;
break;
case 'alterTable' :
$db = $service->alterTable ( $database, $table, $query );
echo $db;
break;
case 'removeTable' :
$db = $service->removeTable ( $database, $query );
echo $db;
break;
case 'renameTable' :
$db = $service->renameTable ( $database, $table, $query );
echo $db;
break;
// case 'createUser' :
// $db = $service->createUser ( $user );
// echo $db;
// break;
/*********************************************
* INSERT/UPDATE/REMOVE DATA
*********************************************/
case 'insertRecord' :
$insert = $service->insertRecord ( $query );
echo $insert;
break;
case 'updateRecord' :
$update = $service->updateRecord ( $query );
echo $update;
break;
case 'removeRecord' :
$remove = $service->removeRecord ( $query );
echo $remove;
break;
/*********************************************
* DATABASE/TABLE/FIELD INFO
*********************************************/
case 'describeTable' :
$db = $service->describeTable ( $database, $table );
echo $db;
break;
case 'getTableColumns' :
$db = $service->getTableColumns ( $database, $table );
echo $db;
break;
case 'getDatabases' :
$db = $service->getDatabases ();
echo $db;
break;
case 'getDatabasesAndTables' :
$db = $service->getDatabasesAndTables ();
echo $db;
break;
case 'getTableIndex' :
$db = $service->getTableIndex ( $database, $table );
echo $db;
break;
case 'getTables' :
$db = $service->_getTableAndFields ( $database );
echo $db;
break;
case 'getServerInfo' :
$db = $service->_getServerInfo ();
echo $db;
break;
case 'getTableData' :
$db = $service->getTableData ( $database, $table );
echo $db;
break;
case 'getUserInfo' :
$db = $service->getUserInfo ( $query );
echo $db;
break;
/*********************************************
* EXECUTE QUERY/ RESULT XML/JSON
*********************************************/
case 'executeQuery' :
$db = $service->executeQuery ( $query );
echo $db;
break;
case 'explainQuery' :
$db = $service->executeQuery ( "EXPLAIN $query" );
echo $db;
break;
case 'executeQueryToXML' :
header ( "Content-type: text/xml" );
$db = $service->exportToXML ( $database, $table );
echo $db;
break;
case 'exportToJSON' :
$db = $service->exportToJSON ( $database, $table );
echo $db;
break;
/*********************************************
* MYSQL STATS
*********************************************/
case 'getBytes' : //check
$db = $service->_getBytes ();
echo $db;
break;
case 'getCommands' : //check
$db = $service->_getCommands ();
echo $db;
break;
case 'getConnections' : //check
$db = $service->_getConnections ();
echo $db;
break;
case 'getInnoDb' : //check
$db = $service->_getInnoDb ();
echo $db;
break;
case 'getKeys' : //check
$db = $service->_getKeys ();
echo $db;
break;
case 'getOpen' : //check
$db = $service->_getOpen ();
echo $db;
break;
case 'getPerformance' : //check
$db = $service->_getPerformance ();
echo $db;
break;
case 'getQcache' : //check
$db = $service->_getQcache ();
echo $db;
break;
case 'getShowCommands' : //check
$db = $service->_getShowCommands ();
echo $db;
break;
case 'getSort' : //check
$db = $service->_getSort ();
echo $db;
break;
case 'getTemp' : //check
$db = $service->_getTemp ();
echo $db;
break;
case 'getThreads' : //check
$db = $service->_getThreads ();
echo $db;
break;
case 'getReplication' : //check
$db = $service->_getReplication ();
echo $db;
break;
case 'getQuestions' : //check
$db = $service->_getQuestions ();
echo $db;
break;
case 'getUptime' : //check
$db = $service->_getUptime();
echo $db;
break;
case 'getHandlers' : //check
$db = $service->_getHandlers();
echo $db;
break;
case 'pollTraffic' : //check
$db = $service->pollTraffic ();
echo $db;
break;
case 'pollQueries' : //check
$db = $service->pollQueries ();
echo $db;
break;
case 'pollConnections' : //check
$db = $service->pollConnections ();
echo $db;
break;
/*********************************************
* SYSTEM INFORMATION
*********************************************/
case 'showSystemVariables' :
$db = $service->showSystemVariables ();
echo $db;
break;
case 'showSystemPrivileges' :
$db = $service->showPrivileges ();
echo $db;
break;
case 'showSystemStatus' :
$db = $service->showSystemStatus ();
echo $db;
break;
case 'showSystemProcess' :
$db = $service->showSystemProcess ();
echo $db;
break;
case 'showTableStatus' :
$db = $service->showTableStatus ( $database );
echo $db;
break;
case 'showSystemUsers' :
$db = $service->showSystemUsers ();
echo $db;
break;
case 'killProcess' :
$db = $service->killProcess ( $query );
echo $db;
break;
/*********************************************
* BACKUPS/EXPORTS/IMPORTS
*********************************************/
case 'createBackup' :
$db = $service->createBackup ( $database, $table, $query );
echo $db;
break;
case 'getDatabaseBackups' :
$db = $service->getDatabaseBackups ();
echo $db;
break;
case 'removeBackup' :
$db = $service->removeBackup ( $database, $query );
echo $db;
break;
case 'getDiskInfo' :
$files = $f->getDiskInfo ( '../backups' );
echo json_encode ( $files );
break;
case 'getDatabaseSpace' :
$db = $service->getDatabaseSpace ();
echo $db;
break;
case 'analyzeQuery' :
$db = $service->analyzeQuery( $query );
echo $db;
break;
default :
trigger_error ( 'Please choose a mode.' );
exit ();
}
?>
Revision: 11986
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at February 26, 2009 07:25 by jonniespratley
Initial Code
Initial URL
Initial Description
Initial Title
REST MySQL Service
Initial Tags
mysql, php, json
Initial Language
PHP