繁体   English   中英

Laravel 5.6,MySQL 5.7,无法选择新的JSON类型字段

[英]Laravel 5.6, MySQL 5.7, Cannot select the new JSON type field

我正在使用JSON Type字段在mysql存储一些数据。 当我尝试在Laravel 5.6中选择查询我的json数据字段时,出现异常

 $transactions = DB::table('transactions')
       ->select('transactions.uuids_json', '... other columns')
....

SQLSTATE[HY000]: General error: 2036, query exception

如果删除uuids_json字段,则一切正常。 我是否必须以某种方式使用原始语句?

uuid_json数据字段列包含如下行:

["1a7b29b8-5009-4266-8192-508930f2f92a", "3d52cfd5-d3c0-467f-8da1-cf81c344ad20", "cbe6e7fb-d806-49e2-8616-3c28afa012fe", "dfda9df5-2cbf-4cb8-aa54-a6dc23f73995"]

感谢您的任何帮助!

这听起来与https://bugs.php.net/bug.php?id=70384有关

确保您的PHP安装使用的是mysqlnd 5.0.11或更高版本,根据该错误日志,该版本应包含该修复程序。

检查php -iphpinfo()以获取所使用的mysqlnd版本。

如果您不能升级到支持JSON数据类型的库版本,一种解决方法是将JSON列CAST转换为字符串:

->select(\DB::raw("CAST(transactions.uuids_json as CHAR) as uuids_json"), ...)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM