文档章节

php查询mysql中的json编码后的字符串内容的方法

jroam
 jroam
发布于 2017/04/09 15:15
字数 289
阅读 79
收藏 0

问题

  1. mysql里存的是json编码后的字符串,其中中文会被转为unicode码,所以直接查询是查询不到的。
  2. mysql里的查询如 like "%\u6211\u662f%" 也是不会有结果的,原因是反斜线被mysql转义了, 需要如下的格式才能查询: like "%\\\\u6211\\\\u662f%" (四个反斜杠) 注意:mysql5.7版以后增加了直接对json格式的支持.

解决方式:

  1. 写二个php函数对要查询的字符串进行unicode编码或解码(这里,我们利用了json_encode这个函数)

  对关键字进行unicode编码
  @param  string $keyword  要编码的字符串关键字
  @return string         str

 function unicode_encode($keyword=""){
   if($keyword=="") return "";
   $bb=json_encode(array($keyword));
   return preg_replace("/^\[\"|\"\]$/","",$bb);
}



 对关键字进行unicode解码
 @param  string $keyword   unicode编码后的字符串
 @return string           str

 function unicode_decode($keyword=""){
   if($keyword=="") return "";
   $keyword="[\"".$keyword."\"]";
   $aa=json_decode($keyword,true);
   return $aa[0];
}

  1. 对转化成unicode后的字符串,替换为4个反斜杠.
$keyword=preg_replace("/\\/","\\\\","\u5a74\u513f");
  1. 用最后得到的keyword去mysql数据库里like查询或其它查询就可以得到预期的结果了。

© 著作权归作者所有

共有 人打赏支持
jroam
粉丝 0
博文 5
码字总数 1957
作品 0
成都
架构师
私信 提问
数据库记录转换成json格式

<?php / 1.在company数据user表中取出10条数据,保存为数组 2.在将数组转化为json格式,传递给js 3.用json解析器将传递过来的json字符串转化为json对象, 4.用document.write输出语句打印在页...

zyt_1978
2016/06/11
29
0
robbe+base64+Mysql简易有效的php全文索引实现

确实有很多方法来给php提供全文索引功能。 例如: 1。solr或者lucene,(需要安装对应的php客户端扩展)。 2。sphinx 3。基于任何一个数据库(key/value的最好)的模拟实现。 4。Mysql的全文索...

狮子的魂
2013/03/01
0
2
为您的 web 项目构建一个简单的 JSON 控制器

无论您的项目使用的是哪种数据库后端,JavaScript Object Notation (JSON) 控制器都能简化您的开发工作。本文将带领您建立一个能够增强您的下一个开发项目的非常基础的 JSON 控制器。 您的下...

IBMdW
2011/06/21
341
1
PHP编程中10个最常见的错误

错误1:foreach循环后留下悬挂指针 在foreach循环中,如果我们需要更改迭代的元素或是为了提高效率,运用引用是一个好办法: $arr = array(1, 2, 3, 4); foreach ($arr as &$value) { $value...

荔枝壳
2014/08/01
283
1
PHP编程问题集锦

1. Win32下apache2用get方法传递中文参数会出错 test.php?a=你好&b=你也好 传递参数是会导致一个内部错误 解决办法:"test.php?a=".urlencode(你好)."&b=".urlencode(你也好) 2. win32下的ses...

晨曦之光
2012/03/09
46
0

没有更多内容

加载失败,请刷新页面

加载更多

Beautiful Soup

定义 Python中的一个库,主要用于从网页爬取数据; 安装 pip install beautifulsoup4 四大对象 Beautiful Soup将复杂的HTML文档转换成树形结构,树中的每个节点都是Python对象,对象可归纳为...

村雨1943
12分钟前
0
0
Visual Studio 昨日发布新版本:增加实时同步编程、共同调试

多名开发者可以在同一个项目中编程,在编写代码和调试代码时只需发送一个 URL 网址,就能邀请他人参与协作,而且无需重新配置开发环境和安装任何附加包。该服务支持 Windows、Mac 与 Linux ...

linuxCool
15分钟前
0
0
发现一种不错的学习方法

这是在《软技能,代码之外的生存之道》所看到的一种学习方法,感觉这个理念不错,分享出来,共勉。 我的「十步学习法」 多年以来,我都承受着巨大的压力:快速学习新技术、新编程语言、新框架...

firepation
15分钟前
0
0
webpack4配置详解之常用插件分享

前言   继上一次webpack的基础配置分享之后,本次将分享一些工作中项目常用的配置插件、也会包含一些自己了解过觉得不错的插件,如有分析不到位的,欢迎纠错,嗯,这些东西文档都有,大佬可...

苏南-首席填坑官
32分钟前
4
1
升压变换器 Boost

工作特点 输入输出极性相同。 开关管 MOS 和负载构成并联,在MOS 导通时,电流通过 L 滤波,电源对 L 充电。 当 MOS 断开时,L 向负载及电源放电,输出电压将是 Ui+U L ,达到升压的目的。 ...

colinux
34分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部