joshuawebdev / csv2sql
此包最新版本(v1.4)没有可用的许可信息。
将csv文件内容转换为可能用于创建表的sql指令
v1.4
2022-05-24 00:17 UTC
Requires
- php: >= 5.6
This package is auto-updated.
Last update: 2024-09-25 09:09:39 UTC
README
PHP脚本,读取csv格式的文件并将其转换为sql指令
描述
读取由数据库或电子表格导入的csv格式的表格文件。
csv文件的第一个行包含表的属性。从第二个行开始,包含表每条记录的数据。第一个行被分割并转换为一个数组,其中元素是表的属性。文件的其余行也被转换为数组,其中每个元素是表的数据。
依赖
需要在计算机上安装PHP版本5.6或更高版本(支持终端执行)和依赖项管理器Composer。
安装
composer require joshuawebdev/csv2sql
执行
程序通过终端(Windows中的命令提示符)运行。它接受两个参数
- csv文件的本地路径,该文件将被转换为sql
- 转换后生成的表名
执行示例
php csv2sql.php [param1] [param2]
[param1]和[param2]是上述参数。
使用示例
将data_example.csv文件转换为名为alunos的sql文件,其中包含创建表的指令。
php csv2sql.php csv/data_example.csv alunos
建议
- 此版本的程序在处理csv文件之前需要一些改进,例如删除空白、不必要的行或其他由电子表格自动生成的非必要信息。因此,在运行程序之前删除这些不一致性是一个好主意。
- 可能生成的查询中会有一些不应存在的文本残留,例如多余的逗号或数值字段的双引号。因此,在尝试在数据库中执行这些查询之前,删除这些内容非常重要。
- csv文件的标准分隔符是逗号,但在处理巴西货币单位(例如R$ 10,00)时,这可能会成为一个问题,因为逗号也用于分隔小数点。在这种情况下,有两个解决方案:将货币单位转换为美国标准(其中使用点来分隔小数点)或更改分隔符为其他字符,如分号。您可以通过更改
src/Csv2Sql.php
中的$separator
属性来实现。 - 您还可以在项目中实现此库,通过实例化Csv2Sql类。示例
<?php require __DIR__ . '/vendor/autoload.php'; use JoshuaWebDev\Csv2Sql\Csv2Sql; $csv2sql = new Csv2Sql; $csv2sql->setFile("csv/dados.csv"); // aqui você informa o local onde está o arquivo csv $csv2sql->setTable("nome_da_tabela"); // aqui você dá o nome da tabela $createDB = $csv2sql->getCreateTableQuery(); // query gerada para criar o BD (CREATE TABLE ...) $insertData = $csv2sql->getInsertDataQuery(); // array contendo as queries para inserir os dados (INSERT INTO ...) // HÁ OUTROS MÉTODO QUE VOCÊ PODE USAR COMO POR EXEMPLO $csv2sql->getTableName(); // exibe o nome da tabela $csv2sql->getColumnNames(); // retorna um array com o nome das colunas (head) $csv2sql->getDataFromTable(); // retorna um array com os dados obtidos do arquivo csv (sem head, só os dados)
未来改进
- 程序缺少处理通过导入.csv文件获得的数据的功能,例如:删除空白、冗余等功能。
- 生成的查询返回所有字符串类型的字段,而不管原始类型是什么(整数、双精度浮点、日期时间等)。