php - PHP CRUD API 不断返回 JSON 值的 Base64
问题描述
我想首先说我对 PHP CRUD API 完全陌生。
我遇到了一个问题,其中某个 MySQL 表值“绑定”,它作为 JSON 存储在数据库中,正在输出Base64。
我似乎无法弄清楚为什么它被输出为 Base64,这是我用于API的代码
如果这没有提供足够的信息,我深表歉意,我真的对导致此问题的原因感到困惑。如果您需要更多信息,请发表评论,谢谢。
解决方案
这是来自PHP-CRUD-API的代码,我是作者。如果您的列被识别为二进制类型,则输出为 base64 编码。是否为二进制类型由代码片段确定:
return (($field->flags & 128) && (($field->type>=249 && $field->type<=252) ||
($field->type>=253 && $field->type<=254 && $field->charsetnr==63)));
从isBinaryType($field)
函数,其中:
128 = BINARY_FLAG
249 = TINY_BLOB
250 = MEDIUM_BLOB
251 = LONG_BLOB
252 = BLOB
253 = VAR_STRING
254 = STRING
63 = BINARY_CHARSET
这些标志和类型由列类型和排序规则确定。要解决您的问题,您可能需要将列的排序规则从“utf8_bin”更改为“utf8_general_ci”。
推荐阅读
- json - JOLT 转换以沿数组复制单个值
- c# - 用于多级查询的动态 Linq 表达式
- scala - 为什么提取和分配单个元组值会导致递归隐式搜索?
- jquery - 页面刷新时导航栏背景消失
- spring-boot - OAUTH2:成功表单登录后没有出现授权决策页面
- python - Python Casting和解析变量的值
- npm-install - npm run dev 导致新安装 laravel 5.6.x 时出错
- web-crawler - Storm-Crawler 中的重定向处理
- php - Validating configuration files through Unit Tests?
- javascript - If statement returns undefined when checking if an array doesn't contain a word