php csv修改数据,php – 根据标题将csv数据导入数据库

这是我的脚本.

if (isset($_POST['submit'])) {

if (is_uploaded_file($_FILES['filename']['tmp_name'])) {

echo "

" . "File ". $_FILES['filename']['name'] ." uploaded successfully." . "

";

echo "

Displaying contents:

";

readfile($_FILES['filename']['tmp_name']);

echo "
";

echo $headers;

}

$handle = fopen($_FILES['filename']['tmp_name'], "r");

$header = fgetcsv($handle);

while(! feof($handle)){

while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {

$import="INSERT into CSVtest($header[0],$header[1],$header[2],$header[3],$header[4])

values

('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]')";

mysql_query($import) or die(mysql_error());

}

}

fclose($handle);

echo "Done";

}

这是我根据标题将数据插入数据库的方式,即使它与表列的排列方式不同.

如果csv只有“cell,firstname,lastname”(并且我的表只有这3列)那么它仍然可以工作……但是如果有“cell,address,company,firstname,lastname”那么它会告诉我未知的列错误.

实际上我希望有一个函数,即使csv中有很多列,表中不存在,它仍然可以选择正确的列并插入表中.

任何人都可以给我提示如何更改我的脚本吗?我知道有很多错误…显示我的低标准脚本真的很尴尬…

提前致谢.

解决方法:

您可能希望使用mysql_fetch_field来获取当前列,然后遍历每个标头以确保在构建查询时它存在于表中.

标签:php,import,mysql,header,csv

来源: https://codeday.me/bug/20190630/1336682.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值