1

我在 csv 中有一个文件,格式如下:

"**Table1"
"*Field1","*Field2","*Field3","*Field4"
"Data1","Data2", "Data3", "Data4"

"**Table2"
"*Field1","*Field2","*Field3","*Field4"
"Data1","Data2", "Data3", "Data4"

我希望程序可以识别表 1/ 2 并将数据上传到 mysql 预定义表。我打算使用PHP。有没有人尝试过这样做?我正在寻找一个例子和方法!谢谢。

4

2 回答 2

1

你可以尝试这样的事情:

$handle = fopen("./myfile.csv", "r");
if ($handle === FALSE) {
  exit();
}
// ignore header
fgetcsv($handle, 1000, ",");

// generate SQL query
$sql = "INSERT INTO `mytable` (col1, col2, ...) VALUES ";
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
  $sql .= '("'.$data[0].'", "'.$data[1].'", "'.$data[2].'", ...),';
}
$sql = substr($sql,0,strlen($sql)-1).';';
// then execute your query

已编辑

于 2013-08-28T08:24:21.617 回答
0

这个库可能会让你的事情变得更容易:https ://code.google.com/p/php-csv-parser/ 。我在最近的一个项目中使用了它,我需要解析 CSV 并插入 MySQL 数据库。

$csv->getCell($x, $y)您可以使用where选择要插入的表格,并将$x单元$y格指向"Table1"或指向"Table2"内部。

所以你可以这样做:

$table_name = $csv->getCell($x, $y);
if( $table_name === "Table1" ) {
   // code to insert into table 1
} else if( $table_name === "Table2" ) {
   // code to insert into table 2
}
于 2013-08-28T08:19:47.880 回答