- 52浏览
- 2022-09-09
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;
}
版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、本文由会员转载自互联网,如果您是文章原创作者,请联系本站注明您的版权信息。