PC6下载站

分类分类

一个SQL管理员的web接口

关注+2004-11-07作者:蓝点


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

     *        SQLAdmin  v2.0  -  An  SQL  Administration  User  Interface  for  the  Web *   

     *            Copyright  (C)  1997-98    Alessandro  Vernet        *   

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

     *      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  .=  ""  .   

            "";   

        $result  .=  "";   

        $fieldIndex  =  0;   

        while  ($fieldIndex  <  $fieldsNumber)   

        {   

            $result  .=  ""  .  $fieldNames  [$fieldIndex]  .  "";   

            if  ($fieldLengths  [$fieldIndex]  <=  128)   

            {   

                $result  .=  "
                    $fieldNames  [$fieldIndex]  .  "\"  VALUE=\""  .   

                    $values  [$fieldIndex]  .  "\"  SIZE=\"64\">";   

            }   

            else   

            {   

                $result  .=  "
                    $fieldNames  [$fieldIndex]  .  "\""  .   

                    "  COLS=\"64\"  ROWS=\"10\"  WRAP=\"virtual\">"  .   

                    escapeforhtml  ($values  [$fieldIndex])  .  "";   

            }   

            $result  .=    "
                $fieldNames  [$fieldIndex]  .   

                "\"  VALUE=\""  .  escapeforhtml  ($values  [$fieldIndex])  .  "\">"  .   

                "";   

            $fieldIndex++;   

        }   

        $result  .=  "";   

        if  ($mode  ==  "modify")   

        {   

            $result  .=  "";   

            $result  .=  "";   

        }   

        else   

            {  $result  .=  "";  }   

        $result  .=  "";   

        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  ""  .  $command  .  "
";*/   

        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;   

    }   

?>   
展开全部

相关文章

更多+相同厂商

热门推荐

  • 最新排行
  • 最热排行
  • 评分最高
排行榜

    点击查看更多

      点击查看更多

        点击查看更多

        说两句网友评论

          我要评论...
          取消