首页 > 开发 > PHP > 正文

一个SQL管理员的web接口

2024-05-04 23:00:45
字体:
来源:转载
供稿:网友
,欢迎访问网页设计爱好者web开发。<?   
    /*************************************************************************************  
     *        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;   
    }   
?>   
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表