thinkphp5.0框架 怎麼產生資料庫字典
這篇文章將教你用thinkphp5.0產生資料庫字典,有興趣的朋友一定不要錯過喔!
範例程式碼使用PHP架構:Thinkphp5.0
PHP程式碼: 卷 相關教學課程: HTML影片教學
/** * 生成数据库字典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(''); } /** * 显示表结构信息 * * @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; } /** * 获取数据库字段注释 * * @param string $table_name 数据表名称(必须,不含前缀) * @param string|boolean $field 字段名称(默认获取全部字段,单个字段请输入字段名称) * @param string $table_schema 数据库名称(可选) * @return string */ private function getDbColumnComment($table_name = '', $field = true, $table_schema = ''){ // 接收参数 $database = config('database'); $table_schema = empty($table_schema) ? $database['database'] : $table_schema; $table_name = $database['prefix'] . $table_name; // 处理参数 $param = [ $table_name, $table_schema ]; // 字段 $columnName = ''; if($field !== true){ $param[] = $field; $columnName = "AND COLUMN_NAME = ?"; } // 查询结果 $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 . '字段不存在'; } // 处理结果 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; }
想了解更多訊息,請追蹤PHP中文網的其他教學!
以上是thinkphp5.0框架 怎麼產生資料庫字典的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

Visual Studio Code,也稱為 VS Code,是一個免費的原始碼編輯器 - 或整合開發環境 (IDE) - 可用於所有主要作業系統。 VS Code 擁有大量針對多種程式語言的擴展,可以輕鬆編寫

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

字符串是由字符組成的序列,包括字母、數字和符號。本教程將學習如何使用不同的方法在PHP中計算給定字符串中元音的數量。英語中的元音是a、e、i、o、u,它們可以是大寫或小寫。 什麼是元音? 元音是代表特定語音的字母字符。英語中共有五個元音,包括大寫和小寫: a, e, i, o, u 示例 1 輸入:字符串 = "Tutorialspoint" 輸出:6 解釋 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。總共有 6 個元

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

PHP的魔法方法有哪些? PHP的魔法方法包括:1.\_\_construct,用於初始化對象;2.\_\_destruct,用於清理資源;3.\_\_call,處理不存在的方法調用;4.\_\_get,實現動態屬性訪問;5.\_\_set,實現動態屬性設置。這些方法在特定情況下自動調用,提升代碼的靈活性和效率。

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。
