繁体   English   中英

如何使用php将数据从excel导出到mysql?

[英]How to export data from excel to mysql by using php?

我尝试的代码是

$source = fopen('filename.csv', 'r') or die("Problem open file");
    while (($data = fgetcsv($source, 1000, ",")) !== FALSE)
    {
        $name = $data[0];
       `$mobile = $data[1];


        mysql_query("INSERT INTO `table` (`name`,`mobile`) VALUES ('".$name."','".$mobile ."') ");


    }
    fclose($source);

但是只需要最后一条记录

这是使用PHP fgetcsv()mysqli()一种简单方法:

1.连接到mysqli:

$mysqli = new mysqli("localhost", "my_user", "my_password", "my_db");

2.打开您的CSV文件:

$source = fopen('filename.csv', 'r') or die("Problem open file");

3.使用循环读取CSV并将插入查询放入变量中:

$query="";
do { 
    if ($fields[0]) { 
        $query.="INSERT INTO `table_name` (`name`, `mobile`) VALUES 
            ( 
                '".addslashes($fields[0])."', 
                '".addslashes($fields[1])."' 
            ) 
        ;"; 
    } 
} while ($fields = fgetcsv($source,1000,",","'")); 

4.执行查询并关闭mysqli:

if($mysqli->multi_query($query)) echo "Data successfuly added";
$mysqli->close();

fgetcsv文档

MyQli MultiQuery文档

为什么不仅仅使用MySQL添加整个文件,而不是按行将其分解呢? 就像是

LOAD DATA INFILE 'filename.csv' INTO TABLE table FIELDS TERMINATED BY ',';

或者,如果您有需要输入特定字段的特定列,

LOAD DATA INFILE 'filename.csv' INTO TABLE table FIELDS TERMINATED BY ',' (@c1, @c2) 
set name = @c1, mobile = @c2;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM