php中解决中文json编码模糊查询问题

json格式中文解码查询

这里有一坑,mysql 在查询的时候自动将‘\‘ 做特殊字符处理了

需要四个 \\\\ 进行转换转义

$username = json_encode($username);
$username = str_replace('\\','\\\\\\\\',trim($username, '"'));
$where = $where . ' and wb_bp_users.`name` like \'%' . $username . '%\'';

详细信息可参考这问仁兄的博客:

http://my.oschina.net/qii/blog/196532

时间: 2024-09-28 22:34:32

php中解决中文json编码模糊查询问题的相关文章

spring boot中mybatis使用注解进行模糊查询

小白一枚,spring boot 2.0.5在使用mybatis进行注解模糊查询时遇到一些低级的错误,现记录下来错误示例:"select * from user where name like \""#{name}\""这个错误报Parameter index out of range (1 > number of parameters, which is 0): 经过百度查询其它的得到这条sql语句,虽然能查出来,但是是全部数据都查出来了"

在JDBC中实现SQL语句的模糊查询

在JDBC中实现SQL语句的模糊查询 在大多数情况下我们可以在JDBC中写入sql语句通过占位符的方式来直接查询,但是如果要进行模糊查询,需要转义字符才能够正常查询. sql语句: select * from table where tableid like %id%; JDBC中的sql语句: String sql = "select * from table where tableid like \"%\"?\"%\"";//?为占位符 原文

mysql5.7中解决中文乱码的问题

在使用mysql5.7时,会发现通过web端向数据库中写入中文后会出现乱码,但是在数据库中直接操作SQL语句插入数据后中文就显示正常,这个问题怎么解决呢?此处不对mysql的数据编码过程和原理进行讲解,如果有兴趣的同学可以自己百度. 下面我们就直接使用如下操作解决: 一.打开mysql控制台,输入命令show variables like 'character%'; 显示如下: +--------------------------+-------------------------------

python中的mysql数据库like模糊查询

近期工作在使用python语言开发项目,工作中遇到了一个python连接mysql的like查询. 因为%在python中三个特殊的符号,如%s.%d分别代表了字符串占位符和数字占位符. 大家知道.mysql的模糊查询也须要用到%. 我们有一张test表,要对name字段进行模糊查询,预期的sql例如以下: select * from test where name like '%abc%'; 那么python中怎么写呢? sql = "select * from test where name

JSP中解决中文乱码

<%@ page language="java" contentType="text/html;charset=gbk" pageEncoding="gbk"%> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=gbk"> <title>输入用户名&l

JS中解决中文乱码的2种方法

1.对象 request response 对象setCharacterEncoding=UTF-8 1 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> 2 <% 3 //解决post/get 请求中文乱码的方法 4 request.setCharacterEncoding("UTF-8&qu

Python中解决中文乱码问题

乱码原因:因为你的文件声明为utf-8,并且也应该是用utf-8的编码保存的源文件.但是windows的本地默认编码是cp936,也就是gbk编码,所以在控制台直接打印utf-8的字符串当然是乱码了. 解决方法:在控制台打印的地方用一个转码就ok了,打印的时候这么写:print myname.decode('UTF-8').encode('GBK') 比较通用的方法应该是:import systype = sys.getfilesystemencoding()print myname.decod

Mybatis中文模糊查询,数据库中有数据,但无结果匹配

1.Mybatis中文模糊查询,数据库中有数据,但无结果匹配 1.1 问题描述: Mybatis采用中文关键字进行模糊查询,sql语句配置无误,数据库有该数据,且无任何报错信息,但无查询结果 1.2 解决方法: 修改数据库连接地址: url=jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8 其中,characterEncoding=UTF-8必须写在第一位 原文地址:https://www.cnblogs.com/caoleiCod

MySQL模糊查询中通配符的转义

sql中经常用like进行模糊查询,而模糊查询就要用到百分号“%”,下划线“_”这些通配符,其中“%”匹配任意多个字符,“_”匹配单个字符. 如果我们想要模糊查询带有通配符的字符串,如“60%”,“user_name”,就需要对通配符进行转义.如下,斜杠后面的%就不再是通配符,斜杠之前的%仍然起通配符作用. select percent from score where percent like '%0/%' escape '/';