這篇文章主要介紹thinkphp5.0框架如何生成數(shù)據(jù)庫字典,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!
創(chuàng)新互聯(lián)公司作為成都網(wǎng)站建設(shè)公司,專注網(wǎng)站建設(shè)、網(wǎng)站設(shè)計,有關(guān)成都定制網(wǎng)站方案、改版、費用等問題,行業(yè)涉及成都辦公窗簾等多個領(lǐng)域,已為上千家企業(yè)服務(wù),得到了客戶的尊重與認(rèn)可。
示例代碼使用PHP框架:Thinkphp5.0
PHP代碼:
/** * 生成數(shù)據(jù)庫字典html * 可直接另存為再copy到word文檔中使用 * * @return mixed */ public function dataDictionary() { $tables = Db::query('SHOW TABLE STATUS'); $table_list = array_map('array_change_key_case', $tables); $table_data = []; foreach ($table_list as $item) { $table_name = str_replace(config('database.prefix'),'',$item['name']); $table_fields = $this->showColumns($table_name); foreach ($table_fields as &$fieldItem) { $fieldItem['comment'] = $this->getDbColumnComment($table_name, $fieldItem['name']); } $table_data[] = [ 'table_name' => $item['name'], 'table_comment' => $item['comment'], 'table_fields' => $table_fields ]; } $this->assign('table_data', $table_data); return $this->fetch(''); } /** * 顯示表結(jié)構(gòu)信息 * * @param string $table * @return array */ private function showColumns($table){ $sql = 'SHOW COLUMNS FROM `'.config('database.prefix').$table.'`'; $result = Db::query($sql); if ($result === false) return array(); $array = array(); if (!empty($result)) { foreach ($result as $k=>$v) { $array[$v['Field']] = [ 'name' => $v['Field'], 'type' => $v['Type'], 'null' => $v['Null'], 'default' => $v['Default'], 'primary' => (strtolower($v['Key']) == 'pri'), 'autoinc' => (strtolower($v['Extra']) == 'auto_increment'), ]; } } return $array; } /** * 獲取數(shù)據(jù)庫字段注釋 * * @param string $table_name 數(shù)據(jù)表名稱(必須,不含前綴) * @param string|boolean $field 字段名稱(默認(rèn)獲取全部字段,單個字段請輸入字段名稱) * @param string $table_schema 數(shù)據(jù)庫名稱(可選) * @return string */ private function getDbColumnComment($table_name = '', $field = true, $table_schema = ''){ // 接收參數(shù) $database = config('database'); $table_schema = empty($table_schema) ? $database['database'] : $table_schema; $table_name = $database['prefix'] . $table_name; // 處理參數(shù) $param = [ $table_name, $table_schema ]; // 字段 $columnName = ''; if($field !== true){ $param[] = $field; $columnName = "AND COLUMN_NAME = ?"; } // 查詢結(jié)果 $result = Db::query("SELECT COLUMN_NAME as field,column_comment as comment FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = ? AND table_schema = ? $columnName", $param); if(empty($result) && $field !== true){ return $table_name . '表' . $field . '字段不存在'; } // 處理結(jié)果 foreach($result as $k => $v){ $data[$v['field']] = $v['comment']; if(strpos($v['comment'], '#*#') !== false){ $tmpArr = explode('#*#', $v['comment']); $data[$v['field']] = json_decode(end($tmpArr), true); } } // 字段注釋格式不正確 if(empty($data)){ return $table_name . '表' . $field . '字段注釋格式不正確'; } return count($data) == 1 ? reset($data) : $data; }
Html代碼: 相關(guān)教程:HTML視頻教程
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>快速生成數(shù)據(jù)庫字典</title> <style type="text/css"> .table-name { text-align: center; margin: 15px auto; font-weight: bold; font-size: 20px; } table { border-collapse: collapse; margin: 0 auto; text-align: center; width: 550px; } table caption { margin: 15px auto; } table td, table th { border: 1px solid #cad9ea; color: #666; height: 30px; } table thead th { background-color: #CCE8EB; width: 100px; } table tr:nth-child(odd) { background: #fff; } table tr:nth-child(even) { background: #F5FAFA; } </style> </head> <body> {foreach $table_data as $tableInfo} <div class="table-name">{$tableInfo.table_name}(表注釋:{$tableInfo.table_comment})</div> <table class="table"> <thead> <tr> <th>字段</th> <th>類型</th> <th>空</th> <th>默認(rèn)</th> <th>注釋</th> </tr> </thead> <tbody> {foreach $tableInfo['table_fields'] as $field} <tr> <td> {$field.name} </td> <td> {$field.type} </td> <td> {$field.null} </td> <td style="max-width: 30px;"> {$field.default} </td> <td> {$field.comment} </td> </tr> {/foreach} </tbody> </table> {/foreach} </body> </html>
以上是thinkphp5.0框架如何生成數(shù)據(jù)庫字典的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
當(dāng)前文章:thinkphp5.0框架如何生成數(shù)據(jù)庫字典
文章位置:http://jinyejixie.com/article12/ipjcgc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、軟件開發(fā)、靜態(tài)網(wǎng)站、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)