ThinkPHP6动态新增数据表,新增字段,字段映射分析
发表于:2023-01-06 16:44:11浏览:2095次
1、ThinkPHP 如何判断某个数据表是否存在?
//是否存在的语句
$exist =Db::execute("show tables like 'message'");
if ($exist) {
echo "exit";
}else {
echo "no exit";
}
2、ThinkPHP 动态新增字段
//新增语句
$add_sql = "alter table oa_admin Add column newuser varchar(20) not null default 0 COMMENT '新增user' AFTER status;";
//判断字段是否存在的语句
$exist_sql = "SELECT column_name FROM information_schema.columns WHERE table_name='oa_admin' AND column_name='newuser';";
$exist = Db::execute($exist_sql);
if(empty($exist)){
Db::execute($sql);
}
3、ThinkPHP字段自动映射分析
Thinkphp的字段映射功能可以隐藏表单中真正的字段名,自动映射到真正的数据库字段,如表单中input的提交的名字为mail,而数据库中存的是email。
实现的原理非常简单,首先定义一个映射的数组,以下是官方的例子:
protected $_map = array(
'name'=>'username',// 把表单中name映射到数据表的username字段
'mail'=>'email',// 把表单中的mail映射到数据表的email字段
);
然后在使用create方法后即可将数据映射到表真正的字段上
// 检查字段映射
if(!empty($this->_map)) {
foreach ($this->_map as $key=>$val){
if(isset($data[$key])) {
$data[$val] = $data[$key];
unset($data[$key]);
}
}
}
循环映射数组$this->_map,添加数据$data[映射后字段名]为$data[映射前的字段名],再删除$data[映射前的字段名]。
推荐文章
- 原生js和jquery方式获取浏览器的各种高度和宽度(页面width和height)
- aliplayer播放器,TcPlayer播放器,xgplayer播放器三款大厂的视频直播播放器对比
- ES6 用反引号(`)标识模板字符串详解
- layui框架中layer父子页面相互交互的方法
- ThinkPHP6多条件搜索查询,表达式查询 FIND_IN_SET查询
- 图片变形处理,可设置CSS属性object-fit: cover完美解决
- 韦伯空间望远镜飞行软件采用 C++ 编写、内置定制的JS解释器
- 使用HTML Purifier在thinkphp6中过滤富文本&防止XSS攻击
- ref, toRef, toRefs,reactive, defineComponent, computed, unref, toRaw, watchEffect, onUpdated 10个VUE3前端API总结
- Gitee内的开源项目的指数是如何计算的?