• 技术文章 >php教程 >php手册

    一段导出数据库的代码

    2016-06-21 09:06:57原创446

    导出数据|数据库

    一段导出数据库的代码
    //
    $dbname="mytest";
    $filename="file.sql";
    mysql_pconnect ("localhost:3306","root","");
    //
    function sqldumptable($table) {
    global $DB_site;
    $tabledump = "DROP TABLE IF EXISTS $table;\n";
    $tabledump .= "CREATE TABLE $table (\n";
    $firstfield=1;
    $fields = mysql_query("SHOW FIELDS FROM $table");
    while ($field = mysql_fetch_array($fields)) {
    if (!$firstfield) {$tabledump .= ",\n";} else {$firstfield=0;}
    $tabledump .= " $field[Field] $field[Type]";
    if (!empty($field["Default"])) {$tabledump .= " DEFAULT '$field[Default]'";}
    if ($field[Null] != "YES") {$tabledump .= " NOT NULL";}
    if ($field[Extra] != "") {$tabledump .= " $field[Extra]";}
    }
    mysql_free_result($fields);
    $keys = mysql_query("SHOW KEYS FROM $table");
    while ($key = mysql_fetch_array($keys)) {
    $kname=$key['Key_name'];
    if ($kname != "PRIMARY" and $key['Non_unique'] == 0) { $kname="UNIQUE|$kname";}
    if(!is_array($index[$kname])) { $index[$kname] = array();}
    $index[$kname][] = $key['Column_name'];
    }
    mysql_free_result($keys);

    // get each key info
    while(list($kname, $columns) = @each($index)){
    $tabledump .= ",\n";
    $colnames=implode($columns,",");

    if($kname == "PRIMARY"){ $tabledump .= " PRIMARY KEY ($colnames)";}
    else {
    if (substr($kname,0,6) == "UNIQUE") {
    // key is unique
    $kname=substr($kname,7);
    }

    $tabledump .= " KEY $kname ($colnames)";

    }
    }

    $tabledump .= "\n);\n\n";

    // get data
    $rows = mysql_query("SELECT * FROM $table");
    $numfields=mysql_num_fields($rows);
    while ($row = mysql_fetch_array($rows)) {
    $tabledump .= "INSERT INTO $table VALUES(";

    $fieldcounter=-1;
    $firstfield=1;
    // get each field's data
    while (++$fieldcounter<$numfields) {
    if (!$firstfield) {
    $tabledump.=",";
    } else {
    $firstfield=0;
    }

    if (!isset($row[$fieldcounter])) {
    $tabledump .= "NULL";
    } else {
    $tabledump .= "'".addslashes($row[$fieldcounter])."'";
    }
    }

    $tabledump .= ");\n";
    }
    mysql_free_result($rows);

    return $tabledump;
    }
    //函数结束
    //
    $result = mysql_list_tables ($dbname);
    $i = 0;
    while ($i < mysql_num_rows ($result)) {
    $tb_names[$i] = mysql_tablename ($result, $i);
    $dump.=sqldumptable($tb_names[$i])."\n\n\n";
    $i++;
    }

    echo $dump;//可以在浏览器里输出看看
    $filehandle=fopen($filename,"w");
    fwrite($filehandle,$dump."\n\n\n");
    fclose($filehandle);

    echo "

    数据成功导出!

    ";
    ?>
    把$filename="file.sql";改成$filename="file.txt";




    php入门到就业线上直播课:查看学习

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    上一篇:五种常见的PHP设计模式 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• PHP中SESSION使用中的一点经验总结• 用PHP抓取新闻的例子• 一个模仿oso的论坛程序(之二)• php header函数使用实例代码• php mysql 数据库类
    1/1

    PHP中文网