idct/php-db-csv-writer

一个库,简化了使用CSV集合将大量数据加载到MySQL兼容数据库引擎的过程。

1.0.2 2020-01-21 19:09 UTC

This package is auto-updated.

Last update: 2024-09-22 05:26:31 UTC


README

PHP库,简化了将CSV数据文件导入MySQL的过程。

Tests status Coverage Status GitHub tag (latest SemVer)

允许轻松构建用于MySQL兼容(如MariaDB等)PDO访问的数据库连接的待导入CSV集合。

您可以通过调用appendData(array)向集合中添加新数据条目,然后通过调用storeCollection将文件加载到数据库中。

安装

在项目中安装库的最佳方式是使用Composer

composer require idct/php-db-csv-writer

当然,您仍然可以使用using语句手动将所有必需的文件包含到项目中,但使用Composer和自动加载是强烈建议的。

使用

创建实例

use IDCT\CsvWriter\DbCsvWriter;
$dbCsvWriter = new DbCsvWriter();

使用setPdo方法分配有效的MySQL兼容PDO连接。

由于创建了文件,您需要使用setTmpDir方法分配一个临时存储文件夹。如果您不指定任何内容,则将使用系统的临时目录。

开始新的集合

使用startCollection方法。它接受集合名称作为第一个参数,字段作为第二个参数。集合名称是您的一个引用:它不需要与任何表的名称等匹配;字段数组必须匹配未来目标表中的字段名称。

$dbCsvWriter->startCollection('firstcollection',['fieldA', 'fieldB']);

这将创建一个名为firstcollection.csv的文件,在之前设置的存储目录中。任何之前打开的集合都将关闭。

打开集合

要分配先前创建的集合到实例,请使用openCollection

$dbCsvWriter->openCollection($name);

其中名称可以是存储目录中的集合的引用(例如,如果您想从上一个点打开集合,则它是firstcollection)。它也可以是csv文件的完整路径。

关闭和删除集合

要关闭集合而不存储,请使用closeCollection方法。如果您不带任何参数调用它

$dbCsvWriter->closeCollection();

则集合将保持分配,这允许您稍后通过调用

$dbCsvWriter->removeCollection();

如果您首先通过调用

$dbCsvWriter->closeCollection(true);

然后您不能之后删除它。

在数据库中存储集合

要保存(将集合加载到数据库中),请调用

$dbCsvWriter->storeCollection();

它将自动关闭集合(这会将数据刷新到文件中)并在数据库上执行LOAD DATA INFILE命令,使用当前分配的集合。

注意:默认情况下,它使用查询中的LOCAL属性,这会通知连接器文件存储在客户端(调用计算机)上。如果由于某种原因您想加载存储在远程数据库服务器上的文件,则在PDO分配期间指定第二个参数

$dbCsvWriter->setPdo($pdo, false);

使用isDbRemote方法进行验证。

缓冲

DbCsvWriter可以在将数据保存到CSV文件之前使用内存数据缓冲。检查setBufferSizegetBufferSize方法,它们是CsvWriter相应方法的包装。

待办事项/贡献

目前的主要要求是提供更好的单元测试和文档,但如果您发现任何错误或具有潜在的功能想法,请使用问题或拉取请求,非常欢迎!我将尽快回复。