您的位置:

php读取csv数据的注意事项(php csv文件导入数据库)

本文目录一览:

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中的三行数据

csv文件用PHP要怎么读取

读取csv文件制定行数(行区间)

?php

function get_file_line( $file_name, $line_star, $line_end){

$n = 0;

$handle = fopen($file_name,"r");

if ($handle) {

while (!feof($handle)) {

++$n;

$out = fgets($handle, 4096);

if($line_star = $n){

$ling[] = $out;

php写的网页出问题了,关于读写csv文件的问题!急急急!

在所有PHP代码前面加if($_POST["to"]){ php代码}

你的应该是表达提交之后才执行下面php代码根据具体情况if的条件判断可以多一点,比如如果你的三个input都有值才提交的话可以写成if($_POST["to"] $_POST["subject"] $_POST["message"])当三个都有值的时候才执行下面的php代码

php读取csv问题

应该是不会的,你能贴点代码出来不,这样比较模糊,

?php

$file = fopen('windows_2011_s.csv','r');

while ($data = fgetcsv($file)) {

$goods_list[] = $data;

}

foreach ($goods_list as $arr){

if ($arr[0]!=""){

echo $arr[0]."br";

}

}

echo $goods_list[2][0];

fclose($file);

?

还有个问题就是带双引号如果你在往数据库里插入数据的时候可能会导致语法错误而不能插入

PHP操作CSV文件的问题,请教大家!

csv是以逗号和回车分隔开的 ..

你首先读取文件..

然后用explode分隔回车,

得到一个数组,再对数组内的数据遍历用逗号分隔.会得到具体的数据..

思路就这样....自己多加尝试..理解就可以..