php - 在数据库中上传 csv 文件 - php
问题描述
这是我的代码。我收到错误“注意:未定义的偏移量:9”。如果我在 $item9 之前有它可以工作,但我实际上希望在 $item13 之前有。
if(isset($_POST["submit"]))
{
if($_FILES['file']['name'])
{
$filename = explode(".", $_FILES['file']['name']);
if($filename[1] == 'csv')
{
$handle = fopen($_FILES['file']['tmp_name'], "r");
while($data = fgetcsv($handle))
{
$item1 = mysqli_real_escape_string($connect, $data[0]);
$item2 = mysqli_real_escape_string($connect, $data[1]);
$item3 = mysqli_real_escape_string($connect, $data[2]);
$item4 = mysqli_real_escape_string($connect, $data[3]);
$item5 = mysqli_real_escape_string($connect, $data[4]);
$item6 = mysqli_real_escape_string($connect, $data[5]);
$item7 = mysqli_real_escape_string($connect, $data[6]);
$item8 = mysqli_real_escape_string($connect, $data[7]);
$item9 = mysqli_real_escape_string($connect, $data[8]);
$item10 = mysqli_real_escape_string($connect, $data[9]);
$query = "INSERT into tab1(country, jan, feb,mar,apr,may,jun,jul,aug) values('$item1','$item2','$item3','$item4','$item5','$item6','$item7','$item8','$item9','$item10')";
mysqli_query($connect, $query);
}
fclose($handle);
解决方案
您在最后的评论中回答自己。所以照你说的做——例如。像这样替换每个项目行:
$item1 = array_key_exists(0, $data) ? mysqli_real_escape_string($connect, $data[0]) : '0';
推荐阅读
- bash - 如何从命令行下载带有 Chrome Headless 的网站?
- excel - 具有可变范围的 CountIfs
- maven - 我应该如何将一个android库放到网上
- angular - 如何区分类型和功能?
- ios - HERE Api - 使用 iOS/Android SDK 和 REST API 的不同路由结果
- java - 如何将文本字段中一次可见的字符数限制为小于文本字段的宽度?
- anypoint-studio - 在 Anypoint Studio 中看不到连接器的属性
- java - 如何使项目兼容 64 位
- python - 如何从字符串中删除 None 类型
- javascript - 如何选择第一个单词相同且最后一个单词可选的属性?