Php 从带第一行标签的制表符分隔文本文件创建数据库表
我有一个以制表符分隔的文本文件,第一行是同样以制表符分隔的标签标题,例如:Php 从带第一行标签的制表符分隔文本文件创建数据库表,php,mysql,Php,Mysql,我有一个以制表符分隔的文本文件,第一行是同样以制表符分隔的标签标题,例如: Name ID Money Tom 239482 $2093984 Barry 293984 $92938 唯一的问题是有些列有30个,而不是3个,所以如果可以避免的话,我不想键入所有的(名称VARCHAR(50),…) 我如何编写一个函数,从文本文件在php中从头开始创建表,并说该函数接受$file\u path和$table\u name?我是否必须再次写下所有的列名,告诉mys
Name ID Money
Tom 239482 $2093984
Barry 293984 $92938
唯一的问题是有些列有30个,而不是3个,所以如果可以避免的话,我不想键入所有的(名称VARCHAR(50),…)
我如何编写一个函数,从文本文件在php中从头开始创建表,并说该函数接受$file\u path和$table\u name?我是否必须再次写下所有的列名,告诉mysql它们是什么类型并切掉顶部,或者当名称已经存在时,是否有更优雅的解决方案?即使您可以找到一种方法,您如何确定列类型?我想可以通过检查某些属性(int、string等)来确定列的类型。然后你需要处理一些奇怪的列,比如Money,由于美元符号,它可能被看作一个字符串,但几乎可以肯定的是,它应该被存储为一个整数
除非你打算大量使用这个函数,否则我不会花时间来拼凑它。只是胖手指的表创建。(Ctrl-C,Ctrl-V是您的朋友)您可能需要将列类型映射到文件中的列。您可以通过将该数据添加到文本文件中来实现这一点。比如说
Name|varchar(32) ID|int(8) Money|int(10)
Tom 239482 $2093984
Barry 293984 $92938
或者类似的东西。然后编写一个函数,使用第一行获取列名和columntype,并使用所有其他行填充表中的数据。您可能还希望添加一种命名给定表等的方法。但是,这可能与使用文本文件创建SQL查询的工作量相同(如果不是更多的话)。在顶部添加一个create table语句,并为每行添加insert语句。通过搜索和替换,这可以很快完成。谢谢大家,至少我还没有在谷歌上搜索一个简单的解决方案;我开始为它编写一个解析器,大约有10个正则表达式,我意识到只需键入它就可以更好地利用时间。