idct / php-db-csv-writer
一个库,简化了使用CSV集合将大量数据加载到MySQL兼容数据库引擎的过程。
Requires
- php: >=7.1
- ext-ctype: *
- ext-mbstring: *
- idct/php-csv-writer: ^1.0.5
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- mikey179/vfsstream: ^1.6.8
- php-coveralls/php-coveralls: ^2.1
- php-mock/php-mock-phpunit: ^2.5
- phpunit/phpunit: ^7.5
This package is auto-updated.
Last update: 2024-09-22 05:26:31 UTC
README
PHP库,简化了将CSV数据文件导入MySQL的过程。
允许轻松构建用于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文件之前使用内存数据缓冲。检查setBufferSize
和getBufferSize
方法,它们是CsvWriter
相应方法的包装。
待办事项/贡献
目前的主要要求是提供更好的单元测试和文档,但如果您发现任何错误或具有潜在的功能想法,请使用问题或拉取请求,非常欢迎!我将尽快回复。