php - 使用php将CSV文件加载到mysql数据库中

标签 php mysql arrays csv fgetcsv

我正在努力使用 PHP 从 csv 文件加载信息,并希望将 csv 的内容(手机号码)保存到 mysql 数据库表中。文件内容如下所示:

CSV 文件内容(每行单独记录,不带逗号)

44762126064    
447508751    
4474669756    
44771466603    
444584871    
445574805    
447455471039    
44777451345
447460345819    
44793342963    
44734838672    
44752845528    
4474537291    
44779645078

我尝试使用表单上传 csv 文件并提交。代码读取 csv 文件并尝试将内容写入 mysql 表。问题是代码返回一个数组元素中的所有 csv 记录,如下所示:

Array( 
    [0] => 44762126064 447508751 4474669756 44771466603 444584871 445574805 447455471039 44777451345 447460345819 44793342963 44734838672 44752845528 4474537291 44779645078 
);

并将整个数组作为一条记录插入,而不是在 mysql 表中每行插入一个手机号码。

代码:

if (isset($_POST['submit'])) {
    if (is_uploaded_file($_FILES['filename']['tmp_name'])) {
        echo "<h1>" . "File ". $_FILES['filename']['name'] ." uploaded successfully." . "</h1>";
    echo "<h2>Displaying contents:</h2>";
    #    readfile($_FILES['filename']['tmp_name']);
}

//Import uploaded file to Database
$handle = fopen($_FILES['filename']['tmp_name'], "r");

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

           $import="INSERT into mobilecsv(phoneMobile,status) values('$data[0]',0)";

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

fclose($handle);

print "Import done";

}

我尝试过explode()array_slice()等,但它们都没有帮助我分割这个数组内容以将它们保存为mysql中的单独记录/电话号码数据库。

如何拆分第一个数组元素的各个内容(如我的情况),将它们保存为 CSV 中显示的单独的单独记录?我是一名新程序员,非常感谢您在这方面的帮助。谢谢

最佳答案

问题是 fgetcsv 未检测到逗号分隔值 (CSV) 文件的核心逗号。在文件顶部的 php 开始标记后面添加此行:

ini_set("auto_detect_line_endings", true);

将导入代码更改为:

//Import uploaded file to Database
$handle = fopen($_FILES['filename']['tmp_name'], "r");
while(($data = fgetcsv($handle)) !== FALSE){
$phoneMobile = $line[0];

$import="INSERT into mobilecsv(phoneMobile,status) values('$phoneMobile',0)";
mysql_query($import) or die(mysql_error());
}

fclose($handle);

print "Import done";

}

关于php - 使用php将CSV文件加载到mysql数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25289742/

相关文章:

php - Symfony 友好的购物车

mysql - 恢复已删除的 PLESK 订阅

mysql - 将 CASE 函数与 DATEDIFF 和 COUNT 结合使用

java - 我想将 boolean 数组中的所有值设置为 false 而不重新初始化它

javascript - jQuery 克隆表行(数据)

javascript - 将方法从 onclick 函数发布到 URL

javascript - 显示数据库中的 Google Chart 未正确显示数据

php - mysql排序规则和索引

javascript - 将 javascript 转换为 PHP : array and objects

c++ - 在堆上和堆栈上传递数组以运行