文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>一个SQL管理员的web接口

一个SQL管理员的web接口

时间:2007-02-17  来源:PHP爱好者

<?   
/*************************************************************************************  
*        SQLAdmin  v2.0  -  An  SQL  Administration  User  Interface  for  the  Web *   
*            Copyright  (C)  1997-98    Alessandro  Vernet  <[email protected]>      *   
*************************************************************************************   
*      This  library  is  free  software;  you  can  redistribute  it  and/or       *   
*      modify  it  under  the  terms  of  the  GNU  Library  General  Public        *   
*      License  as  published  by  the  Free  Software  Foundation;  either         *   
*      version  2  of  the  License,  or  (at  your  option)  any  later  version.  *   
*                                                                                   *   
*      This  library  is  distributed  in  the  hope  that  it  will  be  useful,   *   
*      but  WITHOUT  ANY  WARRANTY;  without  even  the  implied  warranty  of      *   
*      MERCHANTABILITY  or  FITNESS  FOR  A  PARTICULAR  PURPOSE.    See  the  GNU  *   
*      Library  General  Public  License  for  more  details.                       *   
*                                                                                   *   
*      You  should  have  received  a  copy  of  the  GNU  Library  General  Public *   
*      License  along  with  this  library;  if  not,  write  to  the               *   
*      Free  Software  Foundation,  Inc.,  59  Temple  Place  -  Suite  330,        *   
*      Boston,  MA    02111-1307,  USA.                                             *   
*************************************************************************************/   

/*  TODO:   
*  -  Add  sort  order.   
*  -  Add  simple  view.   
*  -  Add  some  documentation.   
*/   

/*  LIMITATIONS:   
*  -  Works  only  with  mSQL.   
*/   

/*  HISTORY:   
*  -  97-11-05  (avernet)  Corrected  a  bug  with  quote.   
*  -  98-01-01  (avernet)  Added  a  sortColumn  parameter  to   
*      administrationTable  function.   
*  -  98-03-14  (avernet)  Added  function  addTable  to  enable  users  to   
*      add  (but  not  modify)  en  entry  to  the  database.   
*  -  98-05-19  (avernet)  Submitted  to  PX.   
*  -  98-10-11  (avernet)  Now  SQLAdmin  works  with  PHP3.  The  PHP2  version   
*      will  not  be  mainteained  anymore.   
*  -  98-10-11  (avernet)  SQLAdmin  is  now  distributed  under  the  LGPL   
*      instead  of  MPL.   
*/   

function  escapeforhtml  ($string)   
{   
$result  =  $string;   
//$result  =  ereg_replace  (""",  """,  $result);   
$result  =  ereg_replace  ("<",  "<",  $result);   
$result  =  ereg_replace  (">",  ">",  $result);   
return  $result;   
}   

function  displayTuple  ($fieldsNumber,  $fieldNames,   
$fieldLengths,  $values,  $mode)   
{   
$result  =  "";   
$result  .=  "<FORM  METHOD="post"><TABLE  BORDER><TR>"  .   
"<TD  BGCOLOR="#CCCCFF">";   
$result  .=  "<TABLE  CELLSPACING="0"  CELLPADDING="0">";   
$fieldIndex  =  0;   
while  ($fieldIndex  <  $fieldsNumber)   
{   
$result  .=  "<TR><TD>"  .  $fieldNames  [$fieldIndex]  .  "</TD><TD>";   
if  ($fieldLengths  [$fieldIndex]  <=  128)   
{   
$result  .=  "<INPUT  TYPE="text"  NAME=""  .   
$fieldNames  [$fieldIndex]  .  ""  VALUE=""  .   
$values  [$fieldIndex]  .  ""  SIZE="64">";   
}   
else   
{   
$result  .=  "<TEXTAREA  NAME=""  .   
$fieldNames  [$fieldIndex]  .  """  .   
"  COLS="64"  ROWS="10"  WRAP="virtual">"  .   
escapeforhtml  ($values  [$fieldIndex])  .  "</TEXTAREA>";   
}   
$result  .=    "<INPUT  TYPE="hidden"  NAME="old-"  .   
$fieldNames  [$fieldIndex]  .   
""  VALUE=""  .  escapeforhtml  ($values  [$fieldIndex])  .  "">"  .   
"</TD></TR>";   
$fieldIndex++;   
}   
$result  .=  "<TR><TD  ALIGN="center"  COLSPAN="2">";   
if  ($mode  ==  "modify")   
{   
$result  .=  "<INPUT  TYPE="submit"  NAME="remove"  VALUE="Remove">";   
$result  .=  "<INPUT  TYPE="submit"  NAME="update"  VALUE="Update">";   
}   
else   
{  $result  .=  "<INPUT  TYPE="submit"  NAME="add"  VALUE="Add">";  }   
$result  .=  "</TABLE></TD></TR></TABLE></FORM>";   
return  $result;   
}   

function  fieldFromType  ($text,  $type)   
{   
if  ($type  ==  "int"  ||  $type  ==  "uint"  ||  $type  == "real")   
{  $result  =  $text;  }   
else   
{  $result  =  "'"  .  AddSlashes  ($text)  .  "'";  }   
return  $result;   
}   

function  executeMsql  ($database,  $command)   
{   
/*echo  "<TT>"  .  $command  .  "</TT><HR>";*/   
msql  ($database,  $command);   
}   

function  handleRemove  ($database,  $table,  $fieldsNumber,   
$fieldNames,  $fieldLengths,  $fieldTypes)   
{   
global  $remove;   
if  ($remove  !=  "")   
{   
$command  =  "DELETE  FROM  "  .  $table  .  "  WHERE  ";   
$fieldIndex  =  0;   
while  ($fieldIndex  <  $fieldsNumber)   
{   
$fieldName  =  "old-"  .  $fieldNames  [$fieldIndex];   
global  $$fieldName;   
$command  .=  $fieldNames  [$fieldIndex]  .  "="  .   
fieldFromType  ($$fieldName,  $fieldTypes  [$fieldIndex]);   
if  ($fieldIndex  !=  $fieldsNumber  -  1)   
{  $command  .=  "  AND  ";  }   
$fieldIndex++;   
}                  
executeMsql  ($database,  $command);   
}   
}   

function  handleUpdate  ($database,  $table,  $fieldsNumber,   
$fieldNames,  $fieldLengths,  $fieldTypes)   
{   
global  $update;   
if  ($update  !=  "")   
{   
$command  =  "UPDATE  "  .  $table  .  "  SET  ";   
$fieldIndex  =  0;   
while  ($fieldIndex  <  $fieldsNumber)   
{   
$fieldName  =  $fieldNames  [$fieldIndex];   
global  $$fieldName;   
$command  .=  $fieldName  .  "="  .   
fieldFromType  ($$fieldName,  $fieldTypes  [$fieldIndex]);   
if  ($fieldIndex  !=  $fieldsNumber  -  1)   
{  $command  .=  ",  ";  }   
$fieldIndex++;   
}   
$command  .=  "  WHERE  ";   
$fieldIndex  =  0;   
while  ($fieldIndex  <  $fieldsNumber)   
{   
$fieldName  =  "old-"  .  $fieldNames  [$fieldIndex];   
global  $$fieldName;   
$command  .=  $fieldNames  [$fieldIndex]  .  "="  .   
fieldFromType  ($$fieldName,  $fieldTypes  [$fieldIndex]);   
if  ($fieldIndex  !=  $fieldsNumber  -  1)   
{  $command  .=  "  AND  ";  }   
$fieldIndex++;   
}   
executeMsql  ($database,  $command);   
}   
}   

function  handleAdd  ($database,  $table,  $fieldsNumber,   
$fieldNames,  $fieldLengths,  $fieldTypes)   
{   
global  $add;   
if  ($add  !=  "")   
{   
$command  =  "INSERT  INTO  "  .  $table  .  "  (";   
$fieldIndex  =  0;   
while  ($fieldIndex  <  $fieldsNumber)   
{   
$command  .=  $fieldNames  [$fieldIndex];   
if  ($fieldIndex  !=  $fieldsNumber  -  1)   
{  $command  .=  ",  ";  }   
$fieldIndex++;   
}   
$command  .=  ")  VALUES  (";   
$fieldIndex  =  0;   
while  ($fieldIndex  <  $fieldsNumber)   
{   
$fieldName  =  $fieldNames  [$fieldIndex];   
global  $$fieldName;   
$command  .=  fieldFromType  ($$fieldName,  $fieldTypes  [$fieldIndex]);   
if  ($fieldIndex  !=  $fieldsNumber  -  1)   
{  $command  .=  ",  ";  }   
$fieldIndex++;   
}   
$command  .=  ")";   
executeMsql  ($database,  $command);   
}   
}   

function  displayRemoveUpdate  ($database,  $table,  $sortColumn,   
$fieldsNumber,  $fieldNames,  $fieldLengths)   
{   
$result  =  "";   
if  ($sortColumn  !=  "")   
{  $sortColumn  =  "  ORDER  BY  "  .  $sortColumn;  }   
$msqlresult  =  msql  ($database,  "SELECT  *  FROM  "  .  $table  .  $sortColumn);   
$tuplesNumber  =  msql_numrows  ($msqlresult);   
$tupleIndex  =  0;   
while  ($tupleIndex  <  $tuplesNumber)   
{   
$fieldIndex  =  0;   
while  ($fieldIndex  <  $fieldsNumber)   
{   
$values  [$fieldIndex]  =  msql_result  ($msqlresult,  $tupleIndex,   
$fieldNames  [$fieldIndex]);   
$fieldIndex++;   
}   
$result  .=  displayTuple  ($fieldsNumber,  $fieldNames,   
$fieldLengths,  $values,  "modify");   
$tupleIndex++;   
}   
return  $result;   
}   

function  displayAdd  ($fieldsNumber,  $fieldNames,  $fieldLengths)   
{   
$result  =  "";   
$fieldIndex  =  0;   
while  ($fieldIndex  <  $fieldsNumber)   
{   
$values  [$fieldIndex]  =  "";   
$fieldIndex++;   
}   
$result  .=  displayTuple  ($fieldsNumber,  $fieldNames,   
$fieldLengths,  $values,  "add");   
msql_close  ();   
return  $result;   
}   

function  administrationTable  ($database,  $table,  $sortColumn)   
{   
$result  =  "";   
msql_connect  ( "localhost");   
$msqlresult  =  msql  ($database,  "SELECT  *  FROM  "  .  $table);   
$fieldsNumber  =  msql_numfields  ($msqlresult);    
$msqlresult  =  msql_listfields  ($database,  $table);   
$fieldIndex  =  0;   
while  ($fieldIndex  <  $fieldsNumber)   
{   
$fieldNames  [$fieldIndex]  =  msql_fieldname  ($msqlresult,  $fieldIndex);   
$fieldLengths  [$fieldIndex]  =  msql_fieldlen  ($msqlresult,  $fieldIndex);   
$fieldTypes  [$fieldIndex]  =  msql_fieldtype  ($msqlresult,  $fieldIndex);   
$fieldIndex++;   
}   
handleRemove  ($database,  $table,  $fieldsNumber,  $fieldNames,  $fieldLengths,  $fieldTypes);   
handleUpdate  ($database,  $table,  $fieldsNumber,  $fieldNames,  $fieldLengths,  $fieldTypes);   
handleAdd  ($database,  $table,  $fieldsNumber,  $fieldNames,  $fieldLengths,  $fieldTypes);   
$result  .=  displayRemoveUpdate  ($database,  $table,  $sortColumn,  $fieldsNumber,  $fieldNames,    
$fieldLengths);   
$result  .=  displayAdd  ($fieldsNumber,  $fieldNames,  $fieldLengths);   
return  $result;   
}   

function  addTable  ($database,  $table)   
{   
$result  =  "";   
msql_connect  ( "localhost");   
$msqlresult  =  msql  ($database,  "SELECT  *  FROM  "  .  $table);   
$fieldsNumber  =  msql_numfields  ($msqlresult);    
$msqlresult  =  msql_listfields  ($database,  $table);   
$fieldIndex  =  0;   
while  ($fieldIndex  <  $fieldsNumber)   
{   
$fieldNames  [$fieldIndex]  =  msql_fieldname  ($msqlresult,  $fieldIndex);   
$fieldLengths  [$fieldIndex]  =  msql_fieldlen  ($msqlresult,  $fieldIndex);   
$fieldTypes  [$fieldIndex]  =  msql_fieldtype  ($msqlresult,  $fieldIndex);   
$fieldIndex++;   
}   
handleAdd  ($database,  $table,  $fieldsNumber,  $fieldNames,  $fieldLengths,  $fieldTypes);   
$result  .=  displayAdd  ($fieldsNumber,  $fieldNames,  $fieldLengths);   
return  $result;   
}   
?>
php爱好者站 http://www.phpfans.net PHP|MySQL|javascript|ajax|html.
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载