[英]Typo3 - bulkInsert from a scheduled command - where should the code reside?
我已經使用Extension Builder創建了一個擴展。 這樣就創建了必要的表以及存儲庫和控制器文件。
我創建了一個命令類,該類具有每天調用一次的方法(通過調度程序擴展)。 該命令的目的是截斷表並將數據替換為新行的大容量插入。
我找到了bulkInsert的示例代碼,但是我不確定應該放在哪里?
我最初認為將其放入Controller是合理的解決方案,但也許有更好的放置方法了? 還是運行批量插入的更好方法?
批量插入需要我提供表名,即“ testTable”是表名,我可以像這樣建立連接:
$connection = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('testTable');
...但是像這樣連接到表名感覺不對,因為擴展的其余部分利用了存儲庫。 感覺有點脫節。
任何人都可以給我有關如何在何處以及如何執行此操作的任何指導,以使我的源代碼更加美觀和緊湊。
解決方案是創建一個單獨的表連接實例,如下所示:
$connection = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable($tblname);
然后利用“ bulkInsert”工具,再次傳遞表名,記錄數組和關聯的字段名數組
$connection->bulkInsert($tblname, $records, $fieldnames);
可以直接通過存儲庫直接使用bulkInsert很好,但是我敢肯定有一些邏輯原因無法實現。 但是無論如何,這種解決方案都行之有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.