【问题标题】:Laravel 4.2 Eloquent only returning 1MB dataLaravel 4.2 Eloquent 仅返回 1MB 数据
【发布时间】:2017-10-19 10:42:39
【问题描述】:

我的 mySQL 数据库中有一个 mediumtext 字段,它只返回 1MiB 数据(长度为 1048576 的字符串),当我查询数据库时,字符串的后半部分被修剪。我在网上找到的一个常见解决方案是将此选项添加到 database.php 配置文件中。

'options'   => array(
    PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => false,
    PDO::MYSQL_ATTR_MAX_BUFFER_SIZE => 16777216
)

但是,它仍然只返回 1MiB 的数据。还有什么可能导致问题的原因?

【问题讨论】:

  • 您应该检查服务器中的mysql配置并更新设置。
  • 你做过 php artisan config:cache 吗?
  • 来自文档:MYSQL_ATTR_MAX_BUFFER_SIZE 最大缓冲区大小。默认为 1 MiB。针对 mysqlnd 编译时不支持此常量您检查了吗?
  • 嗯......这就是你使用活动记录所得到的。
  • @SérgioReis Laravel 说它不是一个有效的命令。我正在维护一个旧项目,所以它是 Laravel 4.2。你确定这是一个有效的命令吗?

标签: php mysql laravel pdo laravel-4


【解决方案1】:

原来是连接到另一个数据库时出现问题。我以为如果没有设置默认设置会自动加载,但即使我使用相同的连接配置文件,似乎也有必要设置选项。

//.......... Some other php code ....................
Config::set('database.connections.mysql', array(
         'driver'    => 'mysql',
         'host'      => $db_host,
         'database'  => $db_name,
         'username'  => $db_user,
         'password'  => $db_password,
         'charset'   => 'utf8',
         'collation' => 'utf8_unicode_ci',
         'prefix'    => '',
         'options'   => array( PDO::MYSQL_ATTR_MAX_BUFFER_SIZE => 16777216 ), //This line was missed
     ));
//.......... Some other php code ....................

【讨论】:

    猜你喜欢
    • 2023-03-30
    • 2014-04-09
    • 1970-01-01
    • 1970-01-01
    • 2014-11-29
    • 2014-07-30
    • 1970-01-01
    • 1970-01-01
    • 2020-11-30
    相关资源
    最近更新 更多