php导入csv数据,php生成csv文件

thinkphp里面导入csv数据出现乱码怎么破

php读取csv文件,在windows上出现中文读取不到的情况,本人立马想到一个函数mb_convert_encoding();作如下设置 $str = mb_convert_encoding($str, "UTF-8", "GBK");然后就可以了。当然你也可以用iconv();作如下设置iconv(‘GBK’,”UTF-8//TRANSLIT//IGNORE”,$str);这两个函数来解决在windows上面发生乱码的问题。

创新互联主营海南州网站建设的网络公司,主营网站建设方案,成都App制作,海南州h5小程序设计搭建,海南州网站营销推广欢迎海南州等地区企业咨询

原生PHP代码实现excel导入,并添加数据到数据库.

我用的代码是:

?

//连接数据库文件

$connect=mysql_connect("localhost","admin","admin") or die("链接数据库失败!");

//连接数据库(test)

mysql_select_db("testcg",$connect) or die (mysql_error());

$temp=file("test.csv");//连接EXCEL文件,格式为了.csv

for ($i=0;$i count($temp);$i++)

{

$string=explode(",",$temp[$i]);//通过循环得到EXCEL文件中每行记录的值

//将EXCEL文件中每行记录的值插入到数据库中

$q="insert into ceshi (name,num,dom) values('$string[0]','$string[1]','$string[2]');";

mysql_query($q) or die (mysql_error());

if (!mysql_error());

{

echo " 成功导入数据!";

}

echo $string[4]."\n";

unset($string);

}

?

--------------------------------------------------------------------------------

phpexcel或者pear的一个组件 ,国内有一个excelclass的插件

都是用来处理excel的,前2个功能都比较强大,对编码的支持也都不错,推荐使用pear的那个,名字好像叫spreadsheet reader

phpexcel比较费资源,不过并不是所有的excel都能读取

楼主可以到这里去看看 pear.php.net

--------------------------------------------------------------------------------

顶楼上的回答~~顺便接个分!嘿嘿

--------------------------------------------------------------------------------

AdO直接上传

注意有些字符mysql或ADO可能不支持

--------------------------------------------------------------------------------

首先确认你的数据库是什么编码的,以utf-8为例,

你首先打开excel 文件,然后保存,选择为另存为.csv文件。

然后用文本编辑器打开.csv文件,另存为utf-8的csv

然后你写php 可以使用php 的getcsv 打开(这样确保你有的字段中含有,而导致解析错误),然后把解析的结果导入到数据库中。

然后完了。

我用php的fgetcsv将csv导入mysql,用NOW()导入时间,提示Fatal error: Call to undefined function NOW()

('". NOW()."',' NOW() 比如要放在 引号里,他是mysql的函数,你如果放在引号外面,php就认为 NOW() 是一个 php 的函数,而实际上,php 没有这个函数,你自己又没有定义这么一个函数,当然会提示 Call to undefined function NOW() (意思就是未定义的函数)

php导入CSV到MYSQL遇到特殊字符的问题。

?php //导入CSV表格:CSV转数组 

$fp = fopen($_FILES['myfile']['tmp_name'], 'r'); 

while ( ($row = fgetcsv($fp)) !== FALSE ) { //从文件指针中读入一行并解析CSV 

$arr[] = $row; } fclose($fp); //开启事务,循环插入 

$link = mysqli_connect("127.0.0.1", "root", "root", "zwxiaomi"); 

if (!$link){echo"scriptalert('数据库连接失败!')/script";} 

$link-query("SET NAMES UTF8");

foreach($arr as $row){ 

$danhao=substr($row[2],1);

$sql="INSERT INTO zaitugongdan (FirstName, LastName, danhao) 

VALUES ('".$row[0]."','".$row[1]."','".$danhao."')"; 

$link-query($sql); 

}

?

在代码中去掉这个符号不就可以了

php 写入数据到csv中,不覆盖原有数据,以新增行插入如何实现?

这个跟fputcsv无关,而主要的关键在于你打开文件的模式,你需要使用 a 或是 a+ 模式打开文件。

'a' 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。

'a+' 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。

$fp = fopen('file.csv', 'a+');

foreach($stu as $data);

{

fputcsv($fp,$data); //每次写入一组数据到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中的三行数据


分享标题:php导入csv数据,php生成csv文件
文章出自:http://csdahua.cn/article/dsehhgo.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流