PDO從數據庫中獲取字段,字段被截取爲1M(長度爲1048576)問題的處理

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章