[{"data":1,"prerenderedAt":62},["ShallowReactive",2],{"article-8":3},{"code":4,"msg":5,"data":6,"count":14},200,"查询成功",{"id":7,"title":8,"keywords":9,"description":10,"category_id":11,"content":12,"body_html":13,"thumb_up":14,"clicks":15,"sort":14,"remark":16,"status":17,"is_open":17,"is_deleted":14,"is_top":17,"is_recommend":17,"create_time":18,"update_time":19,"image_id":20,"url":13,"member_id":14,"cate_name":21,"prev":22,"next":23,"tags":26,"words":33,"read_time":34,"comments":14,"cover":35,"relevant":36},8,"MySQL数据库字典导出功能","数据库字典,MySQL,PHP","由于项目需求会经常发生变化，导致数据库数据表可能结构上发生变化，这样可能会导致数据库字段说明文档跟数据库字段不一致问题，同步更新文档又浪费时间，还不如直接将数据库导出成数据库字典不就完了，简单不费时。",6,"由于项目需求会经常发生变化，导致数据库数据表可能结构上发生变化，这样可能会导致数据库字段说明文档跟数据库字段不一致问题，\n\n同步更新文档又浪费时间，还不如直接将数据库导出成数据库字典不就完了，简单不费时。\n\n主要数据库字典生成的SQL语句：\n\n![](https:\u002F\u002Ftp.myong.top\u002Fstorage\u002Fckeditor\u002F20190117\u002Fd0476be604b6ca194845d255f3fe4384.png)\n主要的程序代码是用PHP完成的，具体如下：\n\n创建PDO连接MySQL实例：\n\n``` bash\ntry {\n    $this->conn = new PDO(\"mysql:host={$this->host};port={$this->port};dbname=information_schema\", $this->user, $this->passwd, $this->driver_options);\n    $this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);\n}\ncatch(PDOException $e){\n    echo $e->getMessage();\n}\n```\n利用PDO预处理查询数据：\n\n``` bash\n$result = $this->conn->prepare($sql);\u002F\u002F准备查询语句\n$result->execute();\u002F\u002F执行查询语句，并返回结果集\n$this->data = $result->fetchAll(PDO::FETCH_ASSOC);\u002F\u002F获取结果集中的所有数据\n```\n设置导出文件头信息：\n\n![](https:\u002F\u002Ftp.myong.top\u002Fstorage\u002Fckeditor\u002F20190117\u002F72013b45f8e809d6d04535924ba4d684.png)\n导出生成数据库字典word文档：\n\n``` bash\nif (strpos($_SERVER[\"HTTP_USER_AGENT\"], 'MSIE')) {  \n    header(\"Content-Disposition: attachment; filename={$this->database}数据字典.doc\");  \n}else if (strpos($_SERVER[\"HTTP_USER_AGENT\"], 'Firefox')) {  \n    header(\"Content-Disposition: attachment; filename={$this->database}数据字典.doc\");  \n} else {  \n    header(\"Content-Disposition: attachment; filename={$this->database}数据字典.doc\");  \n}  \nheader(\"Pragma:no-cache\"); \u002F\u002F不能被浏览器缓存 \nheader(\"Expires:0\");  \u002F\u002F页面从浏览器高速缓存到期的时间分钟数，设定expires属性为0，将使对一页面的新的请求从服务器产生\nob_end_flush();\u002F\u002F输出全部内容到浏览器\n```\n \n",null,0,543,"",1,"2019-01-17 22:08:33","2026-04-19 10:34:47",125,"Mysql",[],{"id":24,"title":25},9,"Python整理之字符串操作",[27,30],{"id":28,"name":29},25,"PHP",{"id":31,"name":32},26,"MySQL",992,2,"https:\u002F\u002Ftp.myong.top\u002Fstorage\u002Farticle\u002Fde\u002Fe160ee009b815eba64cecaaccf60f8.jpg",[37,42,47,52,57],{"id":38,"title":39,"create_time":40,"description":41},90,"Redis常见使用场景","2020-06-17 16:09:42","Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库，并提供多种语言的API。本篇文章，主要介绍利用PHP使用Redis，主要的应用场景。",{"id":43,"title":44,"create_time":45,"description":46},94,"客户端连接MySQL8提示 caching-sha2-password 问题","2020-10-19 10:55:26","在安装mysql8的时候如果选择了密码加密，之后用客户端连接比如navicate，会提示客户端连接caching-sha2-password,是由于客户端不支持这种插件，可以通过如下方式进行修改：",{"id":48,"title":49,"create_time":50,"description":51},87,"MySQL中InnoDB和MyISAM区别","2020-06-12 17:11:21","InnoDB具有事务，支持4个事务隔离级别，回滚，崩溃修复能力和多版本并发的事务安全，包括ACID.如果应用中需要执行大量的INSERT或UPDATE操作，则应该使用InnoDB,这样可以提高多用户并发操作的性能。MyISAM管理非事务表，提供高速存储和检索，以及全文搜索能力，如果应用中需要执行大量的SELECT查询，那么MyISAM是更好的选择。",{"id":53,"title":54,"create_time":55,"description":56},88,"MySQL实现循环插入千万级数据","2020-06-12 17:56:22","对于一些数据量较大的系统，数据库面临的问题除了查询效率低下，还有就是数据入库时间长。特别像报表系统，可能每天花费在数据导入上的时间就会长达几个小时之久。因此，优化数据库插入性能是很有意义的。",{"id":58,"title":59,"create_time":60,"description":61},86,"MySQL查询表结构命令","2020-06-09 11:30:00","###### MySQL查询表结构命令\n\n###### 1、查询表结构\n\n主要显示字段类型主键是否允许为空等\n\n```mysql\nDESC 表名;\n```\n\n结果显示\n\n| Field | Type         | Null | Key  | Default | Extra          |\n| :---- | ------------ | ---- | ---- | ------- | -------------- |\n| id    | int(11)      | NO   | P",1783431673131]