手机
当前位置:查字典教程网 >编程开发 >php教程 >一个SQL管理员的web接口
一个SQL管理员的web接口
摘要:

<?

/*************************************************************************************

*SQLAdminv2.0-AnSQLAdministrationUserInterfacefortheWeb *

*Copyright(C)1997-98AlessandroVernet<avernet@scdi.org>*

*************************************************************************************

*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;

}

?>

【一个SQL管理员的web接口】相关文章:

一个程序下载的管理程序(三)

PHP使用者状态管理功能的应用

图书管理程序(三)

一个很方便的 XML 类!!原创的噢

做一个有下拉功能的留言版

4.与数据库的连接

一个目录遍历函数

一个oracle+PHP的查询的例子

在PHP中使用灵巧的体系结构

写一个用户在线显示的程序

精品推荐
分类导航