站三界导航
首页 TP代码thinkphp mysql_num_fields_thinkphp5获取mysql数据库表字段注释

thinkphp mysql_num_fields_thinkphp5获取mysql数据库表字段注释

  • TP代码
  • 来源:站三界导航
  • 87阅读
  • 2023-03-20

thinkphp5获取mysql数据库表字段注释

1、支持获取单个字段和所有字段。

2、使用场景;例如状态:有两种状态:1|正常,2|禁用。通常用于获取器

3、#*#为分隔符,json格式保存。


// 获取数据库字段注释
// @param string $table_name 数据表名称(必须,不含前缀)
// @param string $field 字段名称(默认获取全部字段,单个字段请输入字段名称)
// @param string $table_schema 数据库名称(可选)
// @return string

function get_db_column_comment($table_name = '', $field = true, $table_schema = ''){

    // 接收参数
    $database = config('database');
    $table_schema = empty($table_schema) ? $database['database'] : $table_schema;
    $table_name = $database['prefix'] . $table_name;
    // 缓存名称
    $fieldName = $field === true ? 'allField' : $field; 
    $cacheKeyName = 'db_' . $table_schema . '_' . $table_name . '_' . $fieldName;
    // 处理参数
    $param = [
        $table_name,
        $table_schema
    ];
    // 字段
    $columeName = '';
    if($field !== true){
        $param[] = $field;
        $columeName = "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 = ? $columeName", $param);
    // pp(Db :: getlastsql());
    if(empty($result) && $field !== true){
        return $table_name . '表' . $field . '字段不存在';
    }
    // 处理结果
    foreach($result as $k => $v){
        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;

}

本文结束
本文来自投稿,不代表站三界导航立场,如若转载,请注明出处:https://www.zhansanjie.com/article/details/40314.html

版权声明:

1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

2、本站仅提供信息发布平台,不承担相关法律责任。

3、若侵犯您的版权或隐私,请联系本站管理员删除。

4、本文由会员转载自互联网,如果您是文章原创作者,请联系本站注明您的版权信息。

分享
站三界导航
本站声明:本站严格遵守国家相关法律规定,非正规网站一概不予收录。本站所有资料取之于互联网,任何公司或个人参考使用本资料请自辨真伪、后果自负,站三界导航不承担任何责任。在此特别感谢您对站三界导航的支持与厚爱。