數據庫中有一個字段是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
]
]