账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
  • 举报
    X
    齐博x1万能fun 调用任意数据表 任意字段就是这么任性调用
    106
    0

    列举了几个常用的查询进行简单封装,虽然系统也有内置的但是很多人不大会就二次封装简化了一下。


     这里只封装了一个条件 多个条件的自己再封装或者用标签解决比较好 这里只是说fun可以万能调用

    1获取任意表的某个字段的值

    我要查询一个内容的字段值怎么查?


    fun('wanneng@get_value',2,'cms_content1','picurl')

    查询cms中id 为2的picurl 字段 直接返回这个内容的图片

    fun('wanneng@get_value',2,'cms_content1','view');

    直接返回他的浏览量

    可以看出,只要最后一项是数据库中的字段即可返回对应的值,没有多余的查询。

    那么极限要求下 返回UID为1的一个内容标题怎么办?(这里仅作为示例 一般不这么查询 一般是查询唯一索引)

    fun('wanneng@get_value',1,'cms_content1','title','uid');

    这样我们就返回了 uid为1的第一条数据的标题 其他字段的值只需要更改 title 即可

    条件只需要变更 uid 就可以了。

    fun('wanneng@get_value',20,'cms_content1','title','fid');

    这就是返回fid等于20的一个数据的标题

    2某个条件下的全部字段值

    上面的只能返回一个值,那么有时候我们需要很多值的时候就不适合了

    https://x1.php168.com/bbs/show-12541.html

    这里有按id查询的 已经可以满足99.9%的需求了。这里也是顺便封装了一下基本是一样的。

    那么这里也可以返回全部的值

    fun('wanneng@get_find',2,'cms_content1');

    这是返回id为2的全部字段值 返回的是一个数组 

    极限情况下,我不是按id查询能返回码 答案是可以的

    fun('wanneng@get_find',20,'cms_content1','fid');

    我们返回fid等于20的一条数据 

    可以看出,这个查询 第一项是值 第二项是 数据表 第三项是查询字段 可以为空默认为id

    4任意数据表中的全部列

    我想获取一个用户下全部的信息怎么查询?上面的都是只能查询一条 下面的办法可以查询全部数据。

    fun('wanneng@get_select',1,'cms_content1','uid');

    这就是查询uid为1的全部数据

    我想查询fid为20的全部数据

    fun('wanneng@get_select',20,'cms_content1');

    可以看出 第一项是查询条件的值 第二个是数据表 第三项是查询的条件 默认为fid可以不写

    5任意数据表中某一列的值

    上面的查询已经可以满足很多场景了,再极限的情况下 我想调用一个条件下的某列值 但是我又不想用select

    那么也是可以的,这个调用稍微比较复杂一点点,但是使用场景还是比较多的 主要用到是单选 下拉等等

    fun('wanneng@get_column',105,'cms_content1','id,uid,title','view');

    调用 浏览量为105的全部数据,返回的是一个数组 他的键也就是索引就是我们返回信息的主键id值。

    第一项为查询的值 第二项为数据库名 第三项为我们返回的列的字段名 第一个必须为主键索引 第三项为查询的字段名

    fun('wanneng@get_column',20,'cms_content1','id,uid,title','fid');

    这些模板都可以用,模板怎么用这里不再普及教学了,上面的这些只是封装示例,自己可以封装为自己喜欢的类型 当然了封装也没啥意义只是使用起来方便一点点。

    使用方法 application\common\fun 建立 Wanneng.php

    <?php
    namespace app\common\fun;
    use think\Db;
    /**
     * 万能数据表调用
     * Class Wanneng
     */
    class Wanneng{
       /**
        * 任意数据表中的一个字段值  fun('wanneng@get_value',2,'cms_content1','picurl')
        * 查询cms中 id为2的标题
        * $value=fun('wanneng@get_value',2,'cms_content1','title');
        * 查询cms中 id 为2的浏览量
        * $value=fun('wanneng@get_value',2,'cms_content1','view');
        * 查询cms中 fid 为20的一个内容标题
        * $value=fun('wanneng@get_value',20,'cms_content1','title','fid');
        * @param $id 查询的值
        * @param $table 查询的表
        * @param string $type 查询的条件 默认为id 和查询的值是相关的
        * @param $name 返回的字段值 默认为title
        * @return mixed 查询存在直接返回值 不存在返回 null
        */
       public function get_value($id,$table,$name='title',$type="id"){
          $map=[];
          $map[$type]=$id;
          $value=Db::name($table)->where($map)->value($name);
          return $value;
       }
       /**
        * 任意数据表中的全部字段值
        * 查询cms中 id为2的全部信息
        * $value=fun('wanneng@get_find',2,'cms_content1');
        * 查询fid为20的一条数据 这个数据是第一条发布的
        * $value=fun('wanneng@get_find',20,'cms_content1','fid');
        * @param $id 查询的值
        * @param $table 查询的表
        * @param string $type 查询值的条件
        * @return 返回查询字段的全部值 结果不存在返回null
        */
       public function get_find($id,$table,$type="id"){
          $map=[];
          $map[$type]=$id;
          $find=Db::name($table)->where($map)->find();
          return $find;
       }
       /**
        * 任意数据表中的全部列
        * 查询cms中 uid为1的全部信息
        * $value=fun('wanneng@get_select',1,'cms_content1','uid');
        * 查询fid为20的全部数据
        * $value=fun('wanneng@get_select',20,'cms_content1');
        * @param $id 查询的值
        * @param $table 查询的表
        * @param string $type 查询值的条件
        * @return 返回全部数据的数组 为空返回空数据
        */
       public function get_select($id,$table,$type="fid"){
          $select=[];
          $map=[];
          $map[$type]=$id;
          $select=Db::name($table)->where($map)->select();
          return $select;
       }
       /**
        * 任意数据表中某一列的值
        * 查询cms中 浏览量为105的uid id title
        * $value=fun('wanneng@get_column',105,'cms_content1','id,uid,title','view');
        * @param $id 查询的值
        * @param $table 查询的表
        * @param string $name 查询的字段 可以为多个 用,隔开 例如:id,title,picurl 第一项必须为主键索引
        * @param string $type 查询的条件
        * @return mixed
        */
       public function get_column($id,$table,$name='title',$type="id"){
          $map=[];
          $map[$type]=$id;
          $column=Db::name($table)->where($map)->column($name);
          return $column;
       }
    }


    原文网址:https://x1.php168.com/bbs/show-15640.html

     
      1.本文部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责。

      2.若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。

      3.如果本站有侵犯、不妥之处的资源,请联系我们。将会第一时间删除帖子!

      4.本站提供的资源来源网络收集或网友发布到本站,仅供学习研究之用,版权归原著所有,切勿用于商业用途和非法行为否则后果自负。请在24小时之内自行删除!

      5.本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报

      6.本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间退回积分、金币或者更新。

    3
    赏钱
    收藏
    点击回复
        全部留言
    • 0
    更多回复
    恢复多功能编辑器
  • 3 1
  • 推荐内容
    扫一扫访问手机版