您的位置:

php如何导入csv,php文件写入

本文目录一览:

php服务器上导入csv文件的问题

上传的 csv 应该保存成 utf-8 格式的,如果你没有其他编辑工具,可以另存完了之后,用记事本打开 csv 文件,在另存为对话框编码那里选择 utf-8 ,保存,然后再上传。

PHP如何导出导入CSV文件?

你用过phpmyadmin了吗,那上面不是有这个功能吗,你自己去读源代码不就解决了吗

phpadmin怎么导入cvs文件

phpmyadmin 导入 csv 的用户界面如下图:

以下是相关的注意事项及说明:

1、关于 CSV 和 CSV using LOAD DATA

这两种都可以导入CSV格式的文件数据,区别在于:当文件比较大时用 CSV 可能 script 会超时,这时就得使用 LOAD DATA。

2、列名

列名就是你在导出时打钩的“将字段名称放在首行”,实际就是用分隔符分开的字段名集合,就是填写所有字段名,中间用分隔字段的字符隔开。

3、Ignore duplicate rows

这个选项的作用是忽略相同的行,意为相同的行只导入一行数据。4、转义字段的字符是指数据里面可能含有特殊字符串,如分隔字段的字符、包裹字段的字符还有SQL保留字符,这些得先转义否则会出错,按默认的设置是没什么问题的。

php如何读取CSV大文件并且将其导入数据库示例

思路:

读取csv文件,每读取一行数据,就插入数据库

示例

文件夹结构

/

 file.csv    //csv大文件,这里只模拟三行数据,不考虑运行效率(PS:csv文件格式很简单,文件一般较小,解析很快,运行效率的瓶颈主要在写入数据库操作)

 index.php    //php文件

file.csv

singi,20

lily,19

daming,23

index.php

/**

 * 读取csv文件,每读取一行数据,就插入数据库

 */

//获取数据库实例

$dsn = 'mysql:dbname=test;host=127.0.0.1';

$user = 'root';

$password = '';

try {

    $db = new PDO($dsn, $user, $password);

} catch (PDOException $e) {

    echo 'Connection failed: ' . $e-getMessage();

}

//读取file.csv文件

if (($handle = fopen("file.csv", "r")) !== FALSE) {

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

        //写入数据库

        $sth = $db-prepare('insert into test set name=:name,age=:age');

        $sth-bindParam(':name',$row[0],PDO::PARAM_STR,255);

        $sth-bindParam(':age',$row[1],PDO::PARAM_INT);

        $sth-execute();

    }

    fclose($handle);

}

数据表

CREATE TABLE `test` (

`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,

`name` VARCHAR(255) NULL DEFAULT '' COLLATE 'utf8mb4_bin',

`age` INT(10) NULL DEFAULT '0',

PRIMARY KEY (`id`)

)

COLLATE='utf8mb4_bin'

ENGINE=InnoDB;

运行结束后,数据库中会插入csv中的三行数据

PHP如何对CSV大文件进行读取并导入数据库

fgetcsv 可以读取fopen打开的文件,并读取一行,

这样可以防止文件太大而内存溢出

然后每读取一定行数,入库一次,