我在csv中有一个文件,其格式如下:
"**Table1"
"*Field1","*Field2","*Field3","*Field4"
"Data1","Data2", "Data3", "Data4"
"**Table2"
"*Field1","*Field2","*Field3","*Field4"
"Data1","Data2", "Data3", "Data4"
我希望程序可以识别表1/2并将数据上传到mysql预定义表。我打算用PHP。有没有人试过这样做?我正在寻找一个例子和方法!谢谢。
答案 0 :(得分: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
<强> EDITED 强>
答案 1 :(得分:0)
这个库可能会让你更轻松:https://code.google.com/p/php-csv-parser/。我在最近的项目中使用它,我需要解析CSV并插入MySQL数据库。
您可以使用$csv->getCell($x, $y)
选择要插入的表格,其中$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
}