我有一个简单的脚本来上传csv文件,它的工作原理。 但是如果我想用指定的头文件处理数据呢? 例如,如果我的表有3列:FirstName,LastName,Address 现在我的csv文件是:
Address,FirstName,LastName
myadd,myfname,mylname
如何根据标题将数据正确插入到mysql中,即使它与表列名称不一样?
如果我使用我的脚本,它只会将myadd,myfname和mylname插入FirstName,LastName和Address,甚至也会插入标题。
if (isset($_POST['upload'])) {
if (is_uploaded_file($_FILES['filename']['tmp_name'])) {
echo "<h1>" . "File ". $_FILES['filename']['name'] ." uploaded successfully." . "</h1>";
echo "<p>contents:</p>";
readfile($_FILES['filename']['tmp_name']);
}
$handle = fopen($_FILES['filename']['tmp_name'], "r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$import="INSERT into CSVtest($column1,$column2,$column3,$column4,$column5) values('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]')";
mysql_query($import) or die(mysql_error());
}
fclose($handle);
Echo "Done";
}
答案 0 :(得分:1)
你说你有脚本:“如果我使用我的脚本,它只会将myadd,myfname和mylname插入FirstName,LastName和Address,甚至也会插入标题。”
我假设您的脚本正在生成SQL来执行此操作,即您正在说INSERT INTO tablename VALUES(v1,v2,v3);
而不是这样做,做一个命名插入 INSERT INTO user(f1,f2,f3)VALUES('v1','v2','v3');
换句话说,在生成sql的脚本中指定字段名称。