数据库中有一个字段是longtext
存储的字段超过1M时,通过PDO获取该字段时,该字段会被截断为1M(即长度为1048576)
该问题是由于PDO的配置问题导致
PDO::MYSQL_ATTR_MAX_BUFFER_SIZE PDO的预设缓冲 默认为1M
如果PHP编译了mysqlnd扩展,则会导致PDO不支持MYSQL_ATTR_MAX_BUFFER_SIZE的预定义了,则获取字段是没有限制
如果没有编译mysqlnd,没有对MYSQL_ATTR_MAX_BUFFER_SIZE进行配置,则取默认1M,即单个字段最大为1M,超过会被截断
如果框架为laravel
则可以在config/database.php的mysql配置中加上options配置,配置为16M
[
'driver'=>'mysql',
'host'=>env('DB_HOST'),
...
'options'=>[
PDO::MYSQL_ATTR_MAX_BUFFER_SIZE=>16777216,//16M
]
]