php - 从带有第一行标签的制表符分隔文本文件创建数据库表

标签 php mysql

我有一个制表符分隔的文本文件,第一行是标签标题,也是制表符分隔的,例如:

Name    ID    Money
Tom    239482    $2093984
Barry    293984    $92938

唯一的问题是有 30 列而不是 3 列,所以如果可以避免的话,我宁愿不必键入所有的 (name VARCHAR(50),...)。

我将如何编写一个函数,从文本文件中用 php 从头开始​​创建表,并说该函数接受 $file_path 和 $table_name ?我是否必须再次编写所有列名称,告诉 mysql 它们是什么类型并砍掉顶部,或者当名称已经存在时是否有更优雅的解决方案?

最佳答案

您可能需要将列类型映射到文件中的列。您可以通过将该数据添加到文本文件中来完成此操作。例如

Name|varchar(32)    ID|int(8)    Money|int(10)
Tom    239482    $2093984
Barry    293984    $92938

或者类似的东西。然后编写一个函数,使用第一行获取列名称和列类型,并使用所有其他行编写数据来填充表。您可能还想添加一种方法来命名给定的表等。但是,这可能与使用文本文件创建SQL 查询一样多(如果不是更多的话)。在顶部添加创建表语句,并为每行添加插入语句。通过搜索和替换,这可以非常快地完成。

关于php - 从带有第一行标签的制表符分隔文本文件创建数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6359615/

相关文章:

javascript - html表格行获取单元格值

mysql - AUTO_INCREMENT 可以在 MySQL 的 BEFORE TRIGGER 中安全使用吗

mysql IFNULL 语法我不知道出了什么问题

mysql - 设计您自己的 MySQL 或 PostgreSQL 连接?

mysql - 如何更新mysql中所有重复记录的列

php - Laravel 5 获取具有关系和多重关系的用户

javascript - 无法找到适用于 Highcharts 的正确 JSON 数组语法

php - 无法在 Heroku 上迁移数据库(试过 MySQL 和 PostgreSQL)

php - 如何使用zend中的db-table定义数据库表中是否存在表记录

php - VirtualAlloc() 失败 : [0x00000008] Not enough storage is available to process this command