登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
园子
关于
博客
发1篇日志+1圆
记录
发1条记录+2圆币
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
VIP申请
网盘
联系我们
道具
勋章
任务
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
资源区
›
代码
›
thinkphp5遇到必须使用Db::raw方法而无法使用json格式传 ...
thinkphp5遇到必须使用Db::raw方法而无法使用json格式传递Db对象
[ 复制链接 ]
赐度虻
3 天前
今天使用Thinkphp5做异步任务传递where参数时遇到一个问题:
有一段如下代码:
$where['jst.supplier'] = ['exp', Db::raw('>0 or jst.is_supplier=1')];
复制代码
在使用swoole做异步任务时需要把where参数传递给异步任务处理,因为无法传递数组和对象只能传递字符串,所以需要把where数组转换成字符串;
以前一直是使用json_encode函数转换json字符串,结果在今天使用发现报错:
进一步追查发现,swoole_client传递的参数就有问题
原始参数是这样的:
结果使用json_encode生成之后是这样的:
网上找了很多办法都不太好,
最后尝试使用 serialize 函数对数组进行序列化,然后swoole服务端使用 unserialize 转换回数组,结果发现Db对象完全保留未发生丢失。
serialize方法虽然不json格式可读性高、占用字符少;但还是有可取之处。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
本地部署deepseek,并投喂数据
Swift whit Xcode 递归枚举实现(使用枚举模拟加减乘除复合运算)
[技术探索者手记] C++自学之路 × linux下搭建属于自己风格的FFmpeg开发项目框架
JAVA 24 环境安装与配置
HTTP-获取天气-dns版
libevent之bufferevents
【日记】每次修机器都有些头疼(721 字)
RabbitMQ简单介绍及常见面试题
FastAPI与Tortoise-ORM开发的神奇之旅
重温c语言之,7天开整,就是随便的写写,第七天
【日记】今天好忙(391 字)
FFmpeg开发笔记(四十三)使用SRS开启SRT协议的视频直播服务
物联网之使用Vertx实现UDP最佳实践【响应式】
CMake构建学习笔记14-依赖库管理工具
mORMot 1.18 第23章 使用纯SQL
0.libevent学习笔记,从阻塞式socket开始
模拟实现 strcat(字符串追加) --浅谈C语言
关于EFCore插件API使用中踩过的坑
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
业界
签约作者
程序园优秀签约作者
发帖
赐度虻
3 天前
关注
0
粉丝关注
10
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
敖可
9990
处匈跑
9998
斜素欣
9996
4
森萌黠
9996
5
堵赫然
9996
6
凶契帽
9996
7
柴古香
9996
8
背竽
9996
9
恐肩
9994
10
都硎唷
9994
查看更多