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

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


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

最佳答案

事实证明,与另一个数据库建立连接时存在问题。我认为如果未设置默认设置,则会自动加载默认设置,但是即使我使用相同的连接配置文件,似乎也有必要设置这些选项。

//.......... 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 ....................

09-11 17:50
查看更多