当前位置:   article > 正文

tp6中如何使用json字符串作为MySQL查询条件_tp6 json查询

tp6 json查询

背景:数据表中有一个字段err_info存的是json字符串,现在需要根据接口传过来的参数(json数据)作为条件去查询数据。

接口参数类似下面这种结构

  1. {
  2. "id":1,
  3. "sid":2,
  4. "img":"xxxx",
  5. "num":3,
  6. "diy":"9999",
  7. "pri":86,
  8. "spec":{
  9. "colour": "1",
  10. "word": "7",
  11. "img": "13",
  12. "size": 21
  13. }
  14. }

数据库中存的数据如下:

  1. {
  2. "colour": "1",
  3. "word": "7",
  4. "img": "13",
  5. "size": 21
  6. }

最开始的想法是把spec的值转成字符串作为查询条件去操作,但是查不到。这个方法行不通,tp对字符串进行了转义操作。

查了tp6文档,有了下面的代码,使用这种方式能够实现json数据作为查询条件的功能

不过有一点要注意MySQL版本必须要5.7以上。使用select version(); 可以查看MySQL版本

  1. $params = file_get_contents('php://input'); // 接收参数
  2. $arr = (json_decode($params, true)); //转为数组
  3. $res = Db::name(strtolower('jddoubleeggs_error_log'))->json(['err_info'])
  4. ->where('err_info->colour', $arr['spec']['colour'])
  5. ->where('err_info->word', $arr['spec']['word']) //
  6. ->where('err_info->img', $arr['spec']['img'])
  7. ->where('err_info->size', $arr['spec']['size'])
  8. ->find();
  9. var_dump($res);die();

如果您觉得哪里有问题,欢迎提出!

author:fb

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/306462
推荐阅读
相关标签
  

闽ICP备14008679号