寧몸SQL밗잿逃돨web쌈왯
2018-09-07 13:07
<?
/*************************************************************************************
*SQLAdminv2.0-AnSQLAdministrationUserInterfacefortheWeb *
*************************************************************************************
*Thislibraryisfreesoftware;youcanredistributeitand/or*
*modifyitunderthetermsoftheGNULibraryGeneralPublic*
*LicenseaspublishedbytheFreeSoftwareFoundation;either*
*version2oftheLicense,or(atyouroption)anylaterversion.*
**
*Thislibraryisdistributedinthehopethatitwillbeuseful,*
*butWITHOUTANYWARRANTY;withouteventheimpliedwarrantyof*
*MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.SeetheGNU*
*LibraryGeneralPublicLicenseformoredetails.*
**
*YoushouldhavereceivedacopyoftheGNULibraryGeneralPublic *
*Licensealongwiththislibrary;ifnot,writetothe*
*FreeSoftwareFoundation,Inc.,59TemplePlace-Suite330,*
*Boston,MA02111-1307,USA.*
*************************************************************************************/
/*TODO:
*-Addsortorder.
*-Addsimpleview.
*-Addsomedocumentation.
*/
/*LIMITATIONS:
*-WorksonlywithmSQL.
*/
/*HISTORY:
*-97-11-05(avernet)Correctedabugwithquote.
*-98-01-01(avernet)AddedasortColumnparameterto
*administrationTablefunction.
*-98-03-14(avernet)AddedfunctionaddTabletoenableusersto
*add(butnotmodify)enentrytothedatabase.
*-98-05-19(avernet)SubmittedtoPX.
*-98-10-11(avernet)NowSQLAdminworkswithPHP3.ThePHP2version
*willnotbemainteainedanymore.
*-98-10-11(avernet)SQLAdminisnowdistributedundertheLGPL
*insteadofMPL.
*/
functionescapeforhtml($string)
{
$result=$string;
//$result=ereg_replace("\"",""",$result);
$result=ereg_replace("<","<",$result);
$result=ereg_replace(">",">",$result);
return$result;
}
functiondisplayTuple($fieldsNumber,$fieldNames,
$fieldLengths,$values,$mode)
{
$result="";
$result.="<FORMMETHOD=\"post\"><TABLEBORDER><TR>".
"<TDBGCOLOR=\"#CCCCFF\">";
$result.="<TABLECELLSPACING=\"0\"CELLPADDING=\"0\">";
$fieldIndex=0;
while($fieldIndex<$fieldsNumber)
{
$result.="<TR><TD>".$fieldNames[$fieldIndex]."</TD><TD>";
if($fieldLengths[$fieldIndex]<=128)
{
$result.="<INPUTTYPE=\"text\"NAME=\"".
$fieldNames[$fieldIndex]."\"VALUE=\"".
$values[$fieldIndex]."\"SIZE=\"64\">";
}
else
{
$result.="<TEXTAREANAME=\"".
$fieldNames[$fieldIndex]."\"".
"COLS=\"64\"ROWS=\"10\"WRAP=\"virtual\">".
escapeforhtml($values[$fieldIndex])."</TEXTAREA>";
}
$result.="<INPUTTYPE=\"hidden\"NAME=\"old-".
$fieldNames[$fieldIndex].
"\"VALUE=\"".escapeforhtml($values[$fieldIndex])."\">".
"</TD></TR>";
$fieldIndex++;
}
$result.="<TR><TDALIGN=\"center\"COLSPAN=\"2\">";
if($mode=="modify")
{
$result.="<INPUTTYPE=\"submit\"NAME=\"remove\"VALUE=\"Remove\">";
$result.="<INPUTTYPE=\"submit\"NAME=\"update\"VALUE=\"Update\">";
}
else
{$result.="<INPUTTYPE=\"submit\"NAME=\"add\"VALUE=\"Add\">";}
$result.="</TABLE></TD></TR></TABLE></FORM>";
return$result;
}
functionfieldFromType($text,$type)
{
if($type=="int"$type=="uint"$type== "real")
{$result=$text;}
else
{$result="".AddSlashes($text)."";}
return$result;
}
functionexecuteMsql($database,$command)
{
/*echo"<TT>".$command."</TT><HR>";*/
msql($database,$command);
}
functionhandleRemove($database,$table,$fieldsNumber,
$fieldNames,$fieldLengths,$fieldTypes)
{
global$remove;
if($remove!="")
{
$command="DELETEFROM".$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);
}
}
functionhandleUpdate($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);
}
}
functionhandleAdd($database,$table,$fieldsNumber,
$fieldNames,$fieldLengths,$fieldTypes)
{
global$add;
if($add!="")
{
$command="INSERTINTO".$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);
}
}
functiondisplayRemoveUpdate($database,$table,$sortColumn,
$fieldsNumber,$fieldNames,$fieldLengths)
{
$result="";
if($sortColumn!="")
{$sortColumn="ORDERBY".$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;
}
functiondisplayAdd($fieldsNumber,$fieldNames,$fieldLengths)
{
$result="";
$fieldIndex=0;
while($fieldIndex<$fieldsNumber)
{
$values[$fieldIndex]="";
$fieldIndex++;
}
$result.=displayTuple($fieldsNumber,$fieldNames,
$fieldLengths,$values,"add");
msql_close();
return$result;
}
functionadministrationTable($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;
}
functionaddTable($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;
}
?>
下一篇:第六节 访问属性和方法 [6]