Ò»¸öSQL¹ÜÀíÔ±µÄweb½Ó¿Ú

5年以前  |  阅读数:858 次  |  编程语言:PHP 

<?
/*****

  •    SQLAdmin  v2.0  -  An  SQL  Administration  User  Interface  for  the  Web *     
  • Copyright (C) 1997-98 Alessandro Vernet avernet@scdi.org *
  • 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分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例