美文网首页
ThinkPHP获取指定某表的全部字段名

ThinkPHP获取指定某表的全部字段名

作者: 最底层的技术渣 | 来源:发表于2019-12-13 15:12 被阅读0次

前言:

    在项目中经常在安全,性能方面,往往会忽略一些事情,比如校验参数时,其实在传参时就可以避免这些,    
    假设以下一个场景:数据量庞大时,经常要根据某个字段来进行排序,根据结果来得到想要的信息,所以经    
    常会用到表的字段,那么在传参时,参数存在字段中,则返回结果,不存在时,直接返回NULL。
    这样是不是可以减少Mysql的IO操作也可以保证一定的安全呢?
实操:
        $m          = M("web_app_version");
        //改进前:如果使用现有的字段名称,可以做到,但是不方便以后维护,比如新增或删减字段名
        //$type_rules = array('id', 'app_type', 'app_title', 'app_version',
        //                    'app_file_address', 'app_update_log',
        //                    'app_create_time', 'is_show');
        //改进后:getDbFields()是thinkphp封装的
        $type_rules = $m->getDbFields();  // ★★★★★代码少,逼格高,扩展性强
        $rules      = array(
            array('type', $type_rules, '非法操作类型!', 2, 'in'),
            array('order', array("desc", "asc"), '非法操作类型!', 2, 'in'),
        );
        if (!$m->validate($rules)->create()) {
            return $this->error($m->getError());
            die();
        }

相关文章

网友评论

      本文标题:ThinkPHP获取指定某表的全部字段名

      本文链接:https://www.haomeiwen.com/subject/fwpfnctx.html