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

这里只封装了一个条件 多个条件的自己再封装或者用标签解决比较好 这里只是说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](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;
}
}

最新文章

  1. grunt 一个目录下所有的js文件压缩 配置收藏
  2. 3-Spark高级数据分析-第三章 音乐推荐和Audioscrobbler数据集
  3. PHP的反射机制
  4. discuz安装步骤
  5. 迭代的模块itertools
  6. hdu 1175 连连看 (广搜,注意解题思维,简单)
  7. UML[1] UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)(转)
  8. 使用VIM + Ctags
  9. Web常见漏洞修复建议
  10. ECMA262学习笔记(一)
  11. 卸载时候出现: windows installer 程序有问题。此安装需要的dll不能运行 的一个解决方法
  12. 伪Ap接入点
  13. springboot应用无故停止运行killed解决方法
  14. 记dynamic的一个小坑 -- RuntimeBinderException:&ldquo;object&rdquo;未包含&ldquo;xxx&rdquo;的定义
  15. iccv文献引用
  16. windows 下跟踪日志的几个工具总结
  17. Kotlin新语言简介和快速入门知识点
  18. DAO,SERVICE
  19. 在CentOS7上安装和使用ZooKeeper最新版本(V3.4.12)
  20. Travelling(HDU3001+状压dp+三进制+最短路)

热门文章

  1. Spherical类定义和实现
  2. WebView2 通过 PuppeteerSharp 实现爬取 王者 壁纸 (案例版)
  3. HDU 1542/POJ 1151 Atlantis (scaning line + segment tree)
  4. Luogu P1903 [国家集训队]数颜色 / 维护队列 (带修莫队)
  5. 在 Linux 系统中安装 Node.js 的流程
  6. RunCat 怎么白嫖付费图标?这篇文章告诉你!
  7. Postfix别名邮件与SASL验证
  8. 基于Vue的前端UI组件库的比对和选型
  9. 校园网跨网段共享文件Samba+SSH
  10. C#实现HTTP访问类HttpHelper