【问题标题】:PHP yii2 dataProvider get TotalCount and export to ExcelPHP yii2 dataProvider 获取 TotalCount 并导出到 Excel
【发布时间】:2016-08-28 17:56:28
【问题描述】:

我想使用以下代码从我的 MySQL 数据库中导出所有数据:

public function actionExport()
{
return $this->createDatAndRen('export', false);
}


private function createDatAndRen($view, $setPagi = true)
{
    $searchModel = new ASearch();
    $dataProvider = $searchModel->search(Yii::$app->request->queryParams);

    $paginat = new Pagination(['pageSize' => $setPagi ? 50 : $dataProvider->getTotalCount()]);
    $dataProvider->paginat = $paginat;

    return $this->render($view, [
        'searchModel' => $searchModel,
        'dpro' => $dataProvider,
    ]);
}

如果我单击导出按钮,我会收到此错误:

SQLSTATE[IMSSP]: 尝试绑定参数号 2101。SQL Server 最多支持 2100 个参数。

我的问题是如果 getTotalCount() = 50 或 1000 我可以读取所有输出。但是如果我有 3049 项,我无法将其导出到 excel。

有什么想法吗?

【问题讨论】:

    标签: php mysql sql-server pdo yii2


    【解决方案1】:

    根据issue#10371:

    MSSQL 对可以传递给存储过程的参数数量有硬性限制。而且看起来 Yii2 使用存储过程来准备 SQL 语句。

    MySQL 和 Oracle 也有这个限制。

    一种解决方案可以是增加该限制,但不建议这样做(我没有找到任何人建议这样做)。

    另一个解决方案是,当您达到限制时,将您的查询分成几块,比如说 2000 条记录并执行多个查询以获取您的数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多