您现在的位置是:技术博客 > PHPPHP Mysqli导出markdown文件 Lucas2020-03-07 21:21【代码】573人已围观 简介通过连接Mysqli,将所有的表导出成markdown文件,可用于编写数据字典。 如果需要把mysql数据库表结构导出来,除了导出成sql、excel、txt、xml等等格式以外,怎么导出成markdown文件格式呢?比如当我们编写数据库数据字典的时候、或者是在程序中浏览的时候可以嵌入markdown代码可以更方便快捷地浏览和使用。 #### 一、创建markdown.html 创建这个html文件是为了用网页表单做交互,代码如下: ``` <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> </head> <body> <form> 主机:<input type="text" name="host"><br> 端口:<input type="text" name="port"><br> 用户名:<input type="text" name="user"><br> 数据库名:<input type="text" name="dbname"><br> 密码:<input type="text" name="password"><br> <button type="button" id="export_to_markdown" value="1">导出成markdown文件</button> </form> </body> <script src="https://libs.baidu.com/jquery/2.0.0/jquery.js"></script> <script type="text/javascript"> $('#export_to_markdown').click(function(){ var host = $('input[name="host"]').val(); var port = $('input[name="port"]').val(); var user = $('input[name="user"]').val(); var dbname = $('input[name="dbname"]').val(); var password = $('input[name="password"]').val(); console.log(host); $.get('./markdown.php', {'host':host,'port':port,'user':user,'dbname':dbname,'password':password}, function(res) { var res = JSON.parse(res); if (res.code == 1) { document.location.href = res.url; }else{ alert(res.msg); } }); }) </script> </html> ``` #### 二、创建php文件处理 代码如下: ``` <?php function getMd($servername, $username, $password, $dbname ,$port) { $conn = new mysqli($servername, $username, $password, $dbname, $port); if ($conn->connect_error) { //echo 1;exit; echo json_encode(array('code'=>0,'msg'=>'数据库连接失败!'));exit; } $result = $conn->query("SHOW TABLE STATUS"); if ($result->num_rows > 0) { $mark = ''; while ($row = $result->fetch_assoc()) { $mark .= '### ' . $row['Name'] . ' ' . $row['Comment'] . PHP_EOL; $mark .= '| 编号 | 中文名 | 字段名称 | 数据类型 | 主键 | 外键 | 是否允许为空 | 备注 |' . PHP_EOL; $mark .= '|: ------ :|: ------ :|: ------ :|: ------ :|: ------ :|: ------ :|: ------ :|: ------ :|' . PHP_EOL; //var_dump($row);exit; //$table_name = $row["Tables_in_{$dbname}"]; $obj = $conn->query("show full columns from {$row['Name']}"); $k = 1; while ($data = $obj->fetch_assoc()) { $mark .= '| ' . $k .' | ' . $data['Comment'] . ' | ' . $data['Field'] . ' | '. $data['Type'] . ' | ' . $data['Key'] . ' | | ' . $data['Null'] . ' | |' . PHP_EOL; $k++; } // 索引 $mark .= PHP_EOL; $mark .= '### 索引' . PHP_EOL; $mark .= PHP_EOL; $mark .= '| 编号 | 名 | 字段 | 索引类型 | 索引方法 |' . PHP_EOL; $mark .= '|: ------ :|: ------ :|: ------ :|: ------ :|: ------ :|' . PHP_EOL; $mark .= '| 1 | | | | |' . PHP_EOL; // 引擎 $mark .= PHP_EOL; $mark .= '### 引擎' . PHP_EOL; $mark .= PHP_EOL; $mark .= '| 引擎 | 排序规则 | 字符集 | 数据目录 |' . PHP_EOL; $mark .= '|: ------ :|: ------ :|: ------ :|: ------ :|' . PHP_EOL; $mark .= '| '.$row['Engine'].' | '.$row['Collation'].' | '.$row['Collation'].' |'.$row['Collation'].' |' . PHP_EOL; $mark .= PHP_EOL; } file_put_contents('markdown.md', $mark); } $conn->close(); echo json_encode(array('code'=>1,'msg'=>'导出成功!','url'=>'./markdown.md')); exit; } $params = $_GET; //var_dump($params);exit; if($params){ $servername = empty($params['host']) ? "" : trim($params['host']); if(!$servername){ echo json_encode(array('code'=>0,'msg'=>'请填写主机'));exit; } $username = empty($params['user']) ? "" : trim($params['user']); if(!$username){ echo json_encode(array('code'=>0,'msg'=>'请填写用户名'));exit; } $password = empty($params['password']) ? "" : $params['password']; if(!$password){ echo json_encode(array('code'=>0,'msg'=>'请填写密码'));exit; } $dbname = empty($params['dbname']) ? "" : $params['dbname']; if(!$dbname){ echo json_encode(array('code'=>0,'msg'=>'请填写数据库名'));exit; } $port = empty($params['port']) ? "" : $params['port']; if(!$port){ echo json_encode(array('code'=>0,'msg'=>'请填写端口号'));exit; } getMd($servername, $username, $password, $dbname, $port); } ``` 创建空markdown.md文件,并赋予写权限用于导出 #### 三、浏览器打开html文件 正确填写数据库配置信息点击导出即可 转载:感谢您对Lucas个人博客网站平台的认可,非常欢迎各位朋友分享到个人站长或者朋友圈,但转载请说明文章出处“来源Lucas个人博客”。 很赞哦! ( 0 ) 上一篇:Redis扩展 下一篇:宝塔使用篇 相关文章 高并发库存防控超量 Swoole 基础篇一(初识) Sublime代码格式化 Session与Cookie 点击排行 生活不止眼前的苟且,还有诗和远方 十年一觉电影梦 奥地利基茨比厄尔 禅修治愈身心 自律成就自我 零边际成本社会 Modern PHP 鸟哥的Linux私房菜 本栏推荐 要技术,更要有创意 定时任务 Curl无法发送https请求 Lnmp环境搭建 常用的SQL函数 Windows的cmd指令 ueditor工具栏浮动bug 有趣的js插件 标签云 git laravel swoole javascript vue ajax html css sql linux docker flask django nginx apache thinkphp markdown sublime wechat layui photoshop nodejs mysql windows composer java maven springboot mybatis IDE 猜你喜欢 Swoole 基础篇一(初识) PHP进程管理器 正则的快速上手 Sublime代码格式化 Lnmp环境搭建 高并发库存防控超量 Linux之top命令 常用的SQL函数 站点信息 建站时间:2018-05-01 在线人数:1人 文章统计:263篇 总浏览量:222627次 统计数据:百度统计 个人信息:扫描二维码查看