gpt4 book ai didi

php - 通知: unserialize(): Error at offset | data trimmed in MySQL

转载 作者:行者123 更新时间:2023-11-29 20:17:56 25 4
gpt4 key购买 nike

我正在使用 symfony 2,我有一个包含数组的实体,在 MySQL 数据库中,数组列生成为 longtext utf8_unicode_ci 列,并带有注释 DC2Type:array.

在查询数据库中的实体时,出现错误:

Notice: unserialize(): Error at offset 894 of 902 bytes

500 Internal Server Error - ContextErrorException

我在SO上搜索了相同的错误,但我发现问题来自数据库中的列,看起来数组没有完全存储并且被修剪,尽管longText类型列最多可存储 4 GB 的数据。

有什么办法可以防止数组被修剪吗?感谢您的提前。

最佳答案

感谢那些试图提供帮助但我找到了问题根源的人,我的数组中有一个随机生成的 token :

$commande['token'] = random_bytes(10);

当我在上面尝试 var_dump 时,它是一个带有特殊字符的奇怪随机字符串,所以我搜索了 symfony2 文档并发现了这个:

The random_bytes() function returns a binary string which may contain the \0 character. This can cause trouble in several common scenarios, such as storing this value in a database or including it as part of the URL. The solution is to encode or hash the value returned by random_bytes() (to do that, you can use a simple base64_encode() PHP function).

所以我添加了 base64_encode() 函数并且它起作用了。

$commande['token'] = base64_encode(random_bytes(10));

关于php - 通知: unserialize(): Error at offset | data trimmed in MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39641011/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com