亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

PHP導出sql文件

系統 2661 0

發現自己之前寫的php導出sql數據為Excel文件在導出一些數據的時候出現了精度的問題,比如導出身份證號的時候會把后面變成0000。暫時先把這個問題留下,有空去看看到底是什么問題。

寫了一個導出sql的工具。稍微加了下界面,把功能也做多了點,簡單來說,就是三個功能:

  1.直接在瀏覽器上顯示sql文件內容。

  2.直接導出到服務器上,要求目錄要可寫。

  3.直接下載到本地,脫庫時感覺還不錯。

好了直接貼上代碼:

?sqldump.php

      <?
      
        php

    
      
      
        if
      
       (
      
        isset
      
      (
      
        $_REQUEST
      
      ['option'
      
        ])) {

        
      
      
        define
      
      ('DOWNLOAD', 
      
        $_REQUEST
      
      ['option'
      
        ]);

    }
      
      
        else
      
      
        {

        
      
      
        define
      
      ('DOWNLOAD',0);
      
        //
      
      
        0代表直接顯示,1代表下載,2代表導出在本地
      
      
            }

    
      
      
        if
      
       (DOWNLOAD != 1
      
        ) {

        
      
      
        header
      
      ("Content-type:text/html;charset=utf-8"
      
        );

    }

    
      
      
        $cfg_dbhost
      
       ='localhost'
      
        ;

    
      
      
        $cfg_dbname
      
       ='mysql'
      
        ;

    
      
      
        $cfg_dbuser
      
       ='root'
      
        ;

    
      
      
        $cfg_dbpwd
      
       =''
      
        ;

    
      
      
        $cfg_db_language
      
       ='utf8'
      
        ;



    
      
      
        //
      
      
        配置信息
      
      
        $cfg_dbhost
      
       = 
      
        isset
      
      (
      
        $_REQUEST
      
      ['dbhost'])?
      
        $_REQUEST
      
      ['dbhost']:
      
        $cfg_dbhost
      
      
        ;

    
      
      
        $cfg_dbname
      
       = 
      
        isset
      
      (
      
        $_REQUEST
      
      ['dbname'])?
      
        $_REQUEST
      
      ['dbname']:
      
        $cfg_dbname
      
      
        ;

    
      
      
        $cfg_dbuser
      
       = 
      
        isset
      
      (
      
        $_REQUEST
      
      ['dbuser'])?
      
        $_REQUEST
      
      ['dbuser']:
      
        $cfg_dbuser
      
      
        ;

    
      
      
        $cfg_dbpwd
      
       = 
      
        isset
      
      (
      
        $_REQUEST
      
      ['dbpwd'])?
      
        $_REQUEST
      
      ['dbpwd']:
      
        $cfg_dbpwd
      
      
        ;

    
      
      
        $cfg_db_language
      
       = 
      
        isset
      
      (
      
        $_REQUEST
      
      ['dbc'])?
      
        $_REQUEST
      
      ['dbc']:
      
        $cfg_db_language
      
      
        ;

    

    
      
      
        $to_file_name
      
       =
      
        isset
      
      (
      
        $_REQUEST
      
      ['dbtable'])?
      
        $_REQUEST
      
      ['dbtable'].".sql":
      
        $cfg_dbname
      
      .".sql"
      
        ;



    
      
      
        if
      
       (DOWNLOAD==2
      
        ) {

        
      
      
        $to_file_name
      
       =
      
        isset
      
      (
      
        $_REQUEST
      
      ['dbtable'])?
      
        dirname
      
      (
      
        __FILE__
      
      ).DIRECTORY_SEPARATOR.
      
        $_REQUEST
      
      ['dbtable'].".sql":
      
        dirname
      
      (
      
        __FILE__
      
      ).DIRECTORY_SEPARATOR.
      
        $cfg_dbname
      
      .".sql"
      
        ;

    }

    
      
      
        //
      
      
         END 配置



    //鏈接數據庫
      
      
        $link
      
       = @
      
        mysql_connect
      
      (
      
        $cfg_dbhost
      
      ,
      
        $cfg_dbuser
      
      ,
      
        $cfg_dbpwd
      
      
        );

    
      
      
        $link
      
      ==
      
        null
      
      ?
      
        die
      
      ('mysql connect error'):''
      
        ;

    @
      
      
        mysql_select_db
      
      (
      
        $cfg_dbname
      
      
        );

    
      
      
        //
      
      
        選擇編碼
      
      

    @
      
        mysql_query
      
      ("set names ".
      
        $cfg_db_language
      
      
        );

    
      
      
        //
      
      
        數據庫中有哪些表
      
      
        $tabList
      
       = 
      
        isset
      
      (
      
        $_REQUEST
      
      ['dbtable'])?
      
        array
      
      ("{
      
        $_REQUEST
      
      ['dbtable']}"):list_tables(
      
        $cfg_dbname
      
      
        );

    
      
      
        $tabList
      
      ==
      
        null
      
      ?
      
        die
      
      ('no tables found'):''
      
        ;

    
      
      
        if
      
       (DOWNLOAD==1
      
        ) {

        
      
      
        Header
      
      ("Content-type: application/octet-stream"
      
        );

        
      
      
        Header
      
      ("Accept-Ranges: bytes"
      
        );

        
      
      
        Header
      
      ("Content-Disposition: attachment; filename=".
      
        $to_file_name
      
      
        );

    }

    
      
      
        if
      
       (DOWNLOAD==2
      
        ) {

        
      
      
        echo
      
       "正在導出...<hr/>"
      
        ;

    }

    
      
      
        $info
      
       = "-- ----------------------------\r\n"
      
        ;

    
      
      
        $info
      
       .= "-- 備份日期:".
      
        date
      
      ("Y-m-d H:i:s",
      
        time
      
      ())."\r\n"
      
        ;

    
      
      
        $info
      
       .= "-- ----------------------------\r\n\r\n"
      
        ;

    
      
      
        if
      
       (DOWNLOAD==2
      
        ) {

        
      
      
        file_put_contents
      
      (
      
        $to_file_name
      
      ,
      
        $info
      
      ,
      
        FILE_APPEND);

    }
      
      
        else
      
      
        {

        
      
      
        echo
      
      
        $info
      
      
        ;

    }

    
      
      
        //
      
      
        將每個表的表結構導出到文件
      
      
        foreach
      
      (
      
        $tabList
      
      
        as
      
      
        $val
      
      
        ){

        
      
      
        $sql
      
       = "show create table ".
      
        $val
      
      
        ;

        
      
      
        $res
      
       = @
      
        mysql_query
      
      (
      
        $sql
      
      ,
      
        $link
      
      
        );

        
      
      
        if
      
       (
      
        $res
      
      ==
      
        null
      
      
        ) {

            
      
      
        die
      
      ('table `'.
      
        $val
      
      .'` not EXISTS'
      
        );

        }

        
      
      
        $row
      
       = @
      
        mysql_fetch_array
      
      (
      
        $res
      
      
        );

        
      
      
        $info
      
       = "-- ----------------------------\r\n"
      
        ;

        
      
      
        $info
      
       .= "-- Table structure for `".
      
        $val
      
      ."`\r\n"
      
        ;

        
      
      
        $info
      
       .= "-- ----------------------------\r\n"
      
        ;

        
      
      
        $info
      
       .= "DROP TABLE IF EXISTS `".
      
        $val
      
      ."`;\r\n"
      
        ;

        
      
      
        $sqlStr
      
       = 
      
        $info
      
      .
      
        $row
      
      [1].";\r\n\r\n"
      
        ;

        
      
      
        if
      
       (DOWNLOAD==2
      
        ) {

            
      
      
        //
      
      
        追加到文件
      
      
        file_put_contents
      
      (
      
        $to_file_name
      
      ,
      
        $sqlStr
      
      ,
      
        FILE_APPEND);

        }
      
      
        else
      
      
        {

            
      
      
        echo
      
      
        $sqlStr
      
      
        ;

        }

        
      
      
        //
      
      
        釋放資源
      
      

        @
      
        mysql_free_result
      
      (
      
        $res
      
      
        );

    }



    
      
      
        //
      
      
        將每個表的數據導出到文件
      
      
        foreach
      
      (
      
        $tabList
      
      
        as
      
      
        $val
      
      
        ){

        
      
      
        if
      
      (DOWNLOAD==2
      
        ){

            
      
      
        echo
      
       "正在導出表`".
      
        $val
      
      ."`...<br>"
      
        ;

        }

        
      
      
        $sql
      
       = "select * from ".
      
        $val
      
      
        ;

        
      
      
        $res
      
       = @
      
        mysql_query
      
      (
      
        $sql
      
      ,
      
        $link
      
      
        );

        
      
      
        //
      
      
        如果表中沒有數據,則繼續下一張表
      
      
        if
      
      (@
      
        mysql_num_rows
      
      (
      
        $res
      
      )<1) 
      
        continue
      
      
        ;

        
      
      
        //


      
      
        $info
      
       = "-- ----------------------------\r\n"
      
        ;

        
      
      
        $info
      
       .= "-- Records for `".
      
        $val
      
      ."`\r\n"
      
        ;

        
      
      
        $info
      
       .= "-- ----------------------------\r\n"
      
        ;

        
      
      
        if
      
       (DOWNLOAD==2
      
        ) {

            
      
      
        file_put_contents
      
      (
      
        $to_file_name
      
      ,
      
        $info
      
      ,
      
        FILE_APPEND);

        }
      
      
        else
      
      
        {

            
      
      
        echo
      
      
        $info
      
      
        ;

        }

        
      
      
        //
      
      
        讀取數據
      
      
        while
      
      (
      
        $row
      
       = @
      
        mysql_fetch_row
      
      (
      
        $res
      
      
        )){

            
      
      
        $sqlStr
      
       = "INSERT INTO `".
      
        $val
      
      ."` VALUES ("
      
        ;

            
      
      
        foreach
      
      (
      
        $row
      
      
        as
      
      
        $zd
      
      
        ){

                
      
      
        $sqlStr
      
       .= "'".
      
        $zd
      
      ."', "
      
        ;

            }

            
      
      
        //
      
      
        去掉最后一個逗號和空格
      
      
        $sqlStr
      
       = 
      
        substr
      
      (
      
        $sqlStr
      
      ,0,
      
        strlen
      
      (
      
        $sqlStr
      
      )-2
      
        );

            
      
      
        $sqlStr
      
       .= ");\r\n"
      
        ;

            
      
      
        if
      
       (DOWNLOAD==2
      
        ) {

                
      
      
        file_put_contents
      
      (
      
        $to_file_name
      
      ,
      
        $sqlStr
      
      ,
      
        FILE_APPEND);

            }
      
      
        else
      
      
        {

                
      
      
        echo
      
      
        $sqlStr
      
      
        ;

            }

        }

        
      
      
        //
      
      
        釋放資源
      
      

        @
      
        mysql_free_result
      
      (
      
        $res
      
      
        );

        
      
      
        if
      
       (DOWNLOAD==2
      
        ) {

            
      
      
        file_put_contents
      
      (
      
        $to_file_name
      
      ,"\r\n",
      
        FILE_APPEND);

        }
      
      
        else
      
      
        {

            
      
      
        echo
      
       "\r\n"
      
        ;

        }

    }

    
      
      
        if
      
      (DOWNLOAD==2
      
        ){

        
      
      
        echo
      
       "<hr/>導出成功。"
      
        ;

    }


      
      
        //
      
      
            echo "End!";
      
      
        function
      
       list_tables(
      
        $database
      
      
        )

    {

        
      
      
        $sql
      
      ='SHOW TABLES FROM '.
      
        $database
      
      
        ;

        
      
      
        $rs
      
       = 
      
        mysql_query
      
      (
      
        $sql
      
      
        );

        
      
      
        $tables
      
       = 
      
        array
      
      
        ();

        
      
      
        while
      
       (
      
        $row
      
       = 
      
        mysql_fetch_row
      
      (
      
        $rs
      
      
        )) {

            
      
      
        $tables
      
      [] = 
      
        $row
      
      [0
      
        ];

        }

        
      
      
        mysql_free_result
      
      (
      
        $rs
      
      
        );

        
      
      
        return
      
      
        $tables
      
      
        ;

    }




      
      ?>
    

然后是界面的東西了,為的是不讓自己去記這個煩人的參數。

sqldumpclient.html

      
        <
      
      
        html
      
      
        >
      
      
        <
      
      
        head
      
      
        >
      
      
        <
      
      
        title
      
      
        >
      
      sqldump客戶端
      
        </
      
      
        title
      
      
        >
      
      
        <
      
      
        meta 
      
      
        charset
      
      
        ='utf-8'
      
      
        >
      
      
        <
      
      
        script 
      
      
        type
      
      
        ="text/javascript"
      
      
        >
      
      
        function
      
      
         setaction () {

        $(
      
      
        '
      
      
        cform
      
      
        '
      
      
        ).action
      
      
        =
      
      
        $(
      
      
        '
      
      
        act
      
      
        '
      
      
        ).value;

        inputs
      
      
        =
      
      
        document.getElementsByTagName(
      
      
        '
      
      
        input
      
      
        '
      
      
        );

        
      
      
        for
      
      
        (
      
      
        var
      
      
         i 
      
      
        =
      
      
        1
      
      
        ;i
      
      
        <
      
      
        inputs.length
      
      
        -
      
      
        4
      
      
        ;i
      
      
        ++
      
      
        ){

            
      
      
        if
      
      
         (inputs[i].value
      
      
        !=
      
      
        ''
      
      
        ) {

                inputs[i].name
      
      
        =
      
      
        inputs[i].id;

            }

        }



    }

    
      
      
        function
      
      
         $(id){

        
      
      
        return
      
      
         document.getElementById(id);

    }


      
      
        </
      
      
        script
      
      
        >
      
      
        </
      
      
        head
      
      
        >
      
      
        <
      
      
        body
      
      
        >
      
      
        <
      
      
        center
      
      
        >
      
      
        <
      
      
        h1 
      
      
        align
      
      
        ="center"
      
      
        >
      
      PHP sql dump
      
        </
      
      
        h1
      
      
        >
      
      
        <
      
      
        h3 
      
      
        align
      
      
        ="right"
      
      
        >
      
      Author:Medici.Yan@gmail.com
      
        </
      
      
        h3
      
      
        >
      
      
        <
      
      
        form 
      
      
        method
      
      
        ="post"
      
      
         id
      
      
        ='cform' 
      
      
        onsubmit
      
      
        ="setaction()"
      
      
        >
      
      
        <
      
      
        fieldset
      
      
        >
      
      
        <
      
      
        table
      
      
        >
      
      
        <
      
      
        legend
      
      
        >
      
      配置
      
        </
      
      
        legend
      
      
        >
      
      
        <
      
      
        tr
      
      
        >
      
      
        <
      
      
        td
      
      
        ><
      
      
        label 
      
      
        for
      
      
        ="act"
      
      
        >
      
      腳本地址:
      
        </
      
      
        label
      
      
        ></
      
      
        td
      
      
        >
      
      
        <
      
      
        td
      
      
        ><
      
      
        input 
      
      
        type
      
      
        ="text"
      
      
         id
      
      
        ='act' 
      
      
        placeholder
      
      
        ="http://www.example.com/sqldump.php"
      
      
        /></
      
      
        td
      
      
        >
      
      
        <
      
      
        td 
      
      
        rowspan
      
      
        ="7"
      
      
         width
      
      
        ="100"
      
      
        >
      
      使用方法:把sqldump.php傳到服務器上,然后在這里填寫相關參數,也可以直接訪問腳本
      
        </
      
      
        td
      
      
        >
      
      
        </
      
      
        tr
      
      
        >
      
      
        <
      
      
        tr
      
      
        >
      
      
        <
      
      
        td
      
      
        ><
      
      
        label 
      
      
        for
      
      
        ="dbhost"
      
      
        >
      
      數據庫地址:
      
        </
      
      
        label
      
      
        ></
      
      
        td
      
      
        >
      
      
        <
      
      
        td
      
      
        ><
      
      
        input 
      
      
        type
      
      
        ="text"
      
      
         id
      
      
        ="dbhost"
      
      
         placeholder
      
      
        ="默認:localhost"
      
      
        /></
      
      
        td
      
      
        >
      
      
        </
      
      
        tr
      
      
        >
      
      
        <
      
      
        tr
      
      
        >
      
      
        <
      
      
        td
      
      
        ><
      
      
        label 
      
      
        for
      
      
        ="dbname"
      
      
        >
      
      數據庫名:
      
        </
      
      
        label
      
      
        ></
      
      
        td
      
      
        >
      
      
        <
      
      
        td
      
      
        ><
      
      
        input 
      
      
        type
      
      
        ="text"
      
      
         id
      
      
        ="dbname"
      
      
         placeholder
      
      
        ="默認:mysql"
      
      
        /></
      
      
        td
      
      
        >
      
      
        </
      
      
        tr
      
      
        >
      
      
        <
      
      
        tr
      
      
        >
      
      
        <
      
      
        td
      
      
        ><
      
      
        label 
      
      
        for
      
      
        ="dbuser"
      
      
        >
      
      用戶名:
      
        </
      
      
        label
      
      
        ></
      
      
        td
      
      
        >
      
      
        <
      
      
        td
      
      
        ><
      
      
        input 
      
      
        type
      
      
        ="text"
      
      
         id
      
      
        ="dbuser"
      
      
         placeholder
      
      
        ="默認:root"
      
      
        /></
      
      
        td
      
      
        >
      
      
        </
      
      
        tr
      
      
        >
      
      
        <
      
      
        tr
      
      
        >
      
      
        <
      
      
        td
      
      
        ><
      
      
        label 
      
      
        for
      
      
        ="dbpwd"
      
      
        >
      
      密碼:
      
        </
      
      
        label
      
      
        ></
      
      
        td
      
      
        >
      
      
        <
      
      
        td
      
      
        ><
      
      
        input 
      
      
        type
      
      
        ="text"
      
      
         id
      
      
        ="dbpwd"
      
      
         placeholder
      
      
        ="默認:<empty>"
      
      
        /></
      
      
        td
      
      
        >
      
      
        </
      
      
        tr
      
      
        >
      
      
        <
      
      
        tr
      
      
        >
      
      
        <
      
      
        td
      
      
        ><
      
      
        label 
      
      
        for
      
      
        ="dbc"
      
      
        >
      
      字符集:
      
        </
      
      
        label
      
      
        ></
      
      
        td
      
      
        >
      
      
        <
      
      
        td
      
      
        >
      
      
        <
      
      
        input 
      
      
        list
      
      
        ="charlist"
      
      
         id
      
      
        ="dbc"
      
      
         placeholder
      
      
        ="默認:utf8"
      
      
        />
      
      
        <
      
      
        datalist 
      
      
        id
      
      
        ="charlist"
      
      
        >
      
      
        <
      
      
        option 
      
      
        value
      
      
        ="utf8"
      
      
        />
      
      
        <
      
      
        option 
      
      
        value
      
      
        ="gbk"
      
      
        />
      
      
        <
      
      
        option 
      
      
        value
      
      
        ="gb2312"
      
      
        />
      
      
        </
      
      
        datalist
      
      
        >
      
      
        </
      
      
        td
      
      
        >
      
      
        </
      
      
        tr
      
      
        >
      
      
        <
      
      
        tr
      
      
        >
      
      
        <
      
      
        td
      
      
        ><
      
      
        label 
      
      
        for
      
      
        ="dbtable"
      
      
        >
      
      表名:
      
        </
      
      
        label
      
      
        ></
      
      
        td
      
      
        >
      
      
        <
      
      
        td
      
      
        ><
      
      
        input 
      
      
        type
      
      
        ="text"
      
      
         id
      
      
        ="dbtable"
      
      
         placeholder
      
      
        ="為空代表所有表"
      
      
        /></
      
      
        td
      
      
        >
      
      
        </
      
      
        tr
      
      
        >
      
      
        <
      
      
        tr
      
      
        >
      
      
        <
      
      
        td
      
      
        ><
      
      
        label 
      
      
        for
      
      
        ="option"
      
      
        >
      
      導出方式:
      
        </
      
      
        label
      
      
        ></
      
      
        td
      
      
        >
      
      
        <
      
      
        td
      
      
        >
      
      
        <
      
      
        input 
      
      
        type
      
      
        ="radio"
      
      
         id
      
      
        ="option"
      
      
         name
      
      
        ="option"
      
      
         value
      
      
        ="0"
      
      
         checked
      
      
        ="checked"
      
      
        >
      
      
        瀏覽器顯示

                
      
      
        <
      
      
        input 
      
      
        type
      
      
        ="radio"
      
      
         id
      
      
        ="option"
      
      
         name
      
      
        ="option"
      
      
         value
      
      
        ="1"
      
      
        >
      
      
        下載到本地

                
      
      
        <
      
      
        input 
      
      
        type
      
      
        ="radio"
      
      
         id
      
      
        ="option"
      
      
         name
      
      
        ="option"
      
      
         value
      
      
        ="2"
      
      
        >
      
      
        導出至服務器

                
      
      
        </
      
      
        td
      
      
        >
      
      
        </
      
      
        tr
      
      
        >
      
      
        <
      
      
        tr
      
      
        >
      
      
        <
      
      
        td
      
      
        ><
      
      
        input 
      
      
        type
      
      
        ="submit"
      
      
         value
      
      
        ="開始"
      
      
        /></
      
      
        td
      
      
        >
      
      
        </
      
      
        tr
      
      
        >
      
      
        </
      
      
        table
      
      
        >
      
      
        </
      
      
        fieldset
      
      
        >
      
      
        </
      
      
        form
      
      
        >
      
      
        </
      
      
        center
      
      
        >
      
      
        </
      
      
        body
      
      
        >
      
      
        </
      
      
        html
      
      
        >
      
    

用法也很簡單,把sqldump.php傳到服務器上,然后在本地運行sqldumpclient.html,寫上相關參數就OK。

?

PHP導出sql文件


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 成人性生活免费看 | 久久国产精品国语对白 | a性视频 | 色无极欧美 | 亚洲一区在线视频 | a一级免费视频 | 国产精品日韩欧美在线第3页 | 欧美一区二区三区精品影视 | 爱爱精品视频 | 国产成人禁片免费观看 | 久久综合久久美利坚合众国 | 精品国产品香蕉在线观看 | 中文字幕在线观看不卡 | 亚洲成a人一区二区三区 | 成人国内精品久久久久影 | 亚洲欧美日韩一区成人 | 欧美ucjizz免费播放器 | 亚洲国产成人九九综合 | www.国产视频 | 一本大道香蕉中文在线高清 | 精品久久久久久久久免费影院 | 国产免费成人在线视频 | 亚洲欧美日韩国产精品第不页 | 深夜你懂的在线网址入口 | 国产在线观看一区二区三区 | 青草免费| 尤物在线视频 | 2019年国产不卡在线刷新 | 成人影院欧美大片免费看 | 日本不卡二 | 青青青青久久精品国产一百度 | 四虎在线成人免费网站 | 99热视屏 | 国产午夜精品不卡视频 | 精品少妇一区二区三区视频 | 国产96精品| 美女视频很黄很黄又免费的 | 久久九九热 | 亚洲欧美日韩在线不卡中文 | 国产精品一区二区国产 | 奇米在线影视 |