csvphp做数据库 csv文件 数据库

php点击按钮上传csv文件,存入mysql数据库代码怎么写

?php

成都创新互联公司于2013年开始,是专业互联网技术服务公司,拥有项目成都网站制作、成都做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元孙吴做网站,已为上家服务,为孙吴各地企业和个人服务,联系电话:028-86922220

$data=file("data.csv");

$j=count($data);

for($i=2;$i$j;$i++){

$val="'".str_replace(",","','",trim($data[$i]))."'";

$sql="insert into tab values(".$val.")";

mysql_query($sql,$mylink);

}

?//最简单的形式]

//我不了解csv 现在给你改下

?php

$fp=fopen("a.csv","r");

while(! feof($fp)){

$data=fgetcsv($fp);

if(!is_array($data))

continue;

$sql=$p="";

foreach($data as $val){

$sql.=$p."'".$val."'";

$p=",";

}

$sql="insert into tab values(".$sql.")";

echo $sql;

//mysql_query($sql,$mylink);

}

fclose($fp);

?

php将csv中的数据建立成一个数据表

其实你把$sql打印出来看看也许就知道错在哪儿了。

大概看了一下你的代码,

先将csv中的每一行分割成数组,再连接到sql语句中,但是你貌似忘记加空格了,

例如

nom,VARCHAR,20,TRUE,PRIMARY,TRUE

按照你的代码处理成sql语句就变成了(缺少空格)

nomVARCHAR20TRUEPRIMARYTRUE

正确情况应该是(逗号替换成空格,最后还要加上一个逗号)

nom VARCHAR 20 TRUE,PRIMARY TRUE,

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

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

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

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

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


分享标题:csvphp做数据库 csv文件 数据库
文章起源:http://scyanting.com/article/hgsehi.html