CSV 直译的就是 逗号分隔值
顾名思义,就是用英文的 "," 做分割。 CSV 导入mysql 数据库的核心原理也就在于此。
我们将会用到一个关键函数 fgetcsv(),它的解释如下:
fgetcsv() 函数从文件指针中读入一行并解析 CSV 字段。
与 fgets()
类似,不同的是 fgetcsv() 解析读入的行并找出 CSV
格式的字段,然后返回一个包含这些字段的数组。
fgetcsv() 出错时返回 FALSE,包括碰到文件结束时。
注释:
从
PHP 4.3.5 起,fgetcsv() 的操作是二进制安全的。
用法:
fgetcsv(file,length,separator,enclosure)
file |
必需。规定要检查的文件。 |
length |
可选。规定行的最大长度。必须大于 CVS 文件内最长的一行。
在 PHP 5 中该参数是可选的。在 PHP 5 之前是必需的。
如果忽略(在 PHP 5.0.4 以后的版本中设为 0)该参数的话,那么长度就没有限制,不过可能会影响执行效率。
|
separator |
可选。设置字段分界符(只允许一个字符),默认值为逗号。 |
enclosure |
可选。设置字段环绕符(只允许一个字符),默认值为双引号。
该参数是在 PHP 4.3.0 中添加的。
|
完整代码:
<?php
// 定义获取时间函数
function getmicrotime(){
list($usec, $sec) = explode(' ',microtime());
return ((float)$usec + (float)$sec);
}
$time_start = getmicrotime();
// 连接数据库
/*
include("database_class.php");
$db = new Database;
*/
mysql_connect('localhost','root','root');
mysql_select_db('test');
// 操作csv
$handle = fopen ('test.csv','r');
$sql="insert into `test` (`id`,`name`,`sex`,`nation`) values ('',";
while ($data = fgetcsv ($handle)) {
$num = count ($data);
for ($i=0; $i<$num; $i++) {
if($i == $num-1){
$sql .= "'".$data[$i]."')";
break;
}
$sql .= "'".$data[$i]."',";
}
print '<br>';
echo $sql.'<br>';
mysql_query($sql);
echo 'sql语句执行成功!<br>';
$sql="insert into `test` (`id`,`name`,`sex`,`nation`) values ('',";
}
fclose ($handle);
// 显示执行时间
$time_end = getmicrotime();
$time = $time_end - $time_start;
echo "程式执行时间:".$time."秒<br>";
// 显示数据库结果
$result = mysql_query('select * from `test`');
while($row = mysql_fetch_array($result)){
echo $row['id'],'<br>',$row['name'],'<br>',$row['sex'],'<br>',$row['nation'],'<br>';
}
fgetcsv 例子
<?php
$file = fopen("contacts.csv","r");
while(! feof($file))
{
print_r(fgetcsv($file));
}
fclose($file);
?>
CSV 文件:
George, John, Thomas, USA
James, Adrew, Martin, USA
输出类似:
Array
(
[0] => George
[1] => John
[2] => Thomas
[3] => USA
Array
(
[0] => James
[1] => Adrew
[2] => Martin
[3] => USA
)
分享到:
相关推荐
CSV文件导入MySQL数据库工具软件 CSVtoDB v1.0.zip 因手头项目需要向MYSQL数据库导入大量的EXCEL数据。网上搜索了相关博客,受限于功能或者本人有一点点的小强迫,业余时间开发了本工具。 EXCEL导入到MYSQL有多种...
在Java编程中,将CSV(逗号分隔值)文件的数据导入到MySQL数据库是一项常见的任务。这个过程涉及几个关键步骤,包括读取CSV文件、解析数据、建立与数据库的连接以及执行SQL插入语句。本篇文章将详细讲解如何使用java...
标题"csv_mysql_importer:将csv导入mysql数据库"提示我们将探讨如何利用Python脚本处理CSV文件并将数据有效地存储到MySQL数据库中。 首先,Python是一种强大的编程语言,它拥有丰富的库支持,如pandas和mysql-...
本篇将详细介绍如何使用Shell脚本结合CSV文件批量将数据导入MySQL数据库,以提高工作效率。 首先,`prov.csv` 是一个包含CSV(逗号分隔值)格式的数据文件,这种文件类型常用于存储表格数据,易于读写和处理。在本...
标题中的"VB读CSV到mysql"指的是使用Visual Basic (VB)编程语言来读取CSV(逗号分隔值)文件,并将数据导入到MySQL数据库的过程。这是一个常见的数据迁移任务,特别是在处理大量结构化数据时。VB是Microsoft开发的一...
csv文件导入MySQL数据库 import pymysql import csv import codecs def get_conn(): conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='root', db='test_csv', charset='utf8') return ...
首先,我们需要将 Excel 文件中的数据导出为 CSV 文件,然后使用 MySQL 的 LOAD DATA 语句将数据导入到数据库中。 优点:简单、快速,易于实现。 缺点:需要将 Excel 文件中的数据导出为 CSV 文件,并且 LOAD DATA...
本篇文章将深入探讨如何使用PHP将CSV数据高效地导入到数据库中,这对于初学者来说是一份非常实用的知识。 首先,我们需要了解PHP处理CSV文件的基本方法。`fgetcsv()`是PHP内置的一个函数,它可以读取CSV文件并逐行...
总之,将Excel文件导入MySQL数据库是一个常见的数据操作任务,通过合理利用各种工具和方法,可以高效、准确地完成数据迁移。在实际工作中,根据具体需求和环境选择合适的方法,同时确保数据安全和完整性。
java实现批量导入.csv文件到mysql数据库 概述 本文主要介绍了使用Java实现批量导入.csv文件到MySQL数据库的方法。该方法可以快速地将.csv文件中的数据批量导入到数据库中,具有很高的实用价值。 Java实现批量导入...
以下是一个关于“Excel导入MySQL数据库实例”的详细知识讲解。 首先,了解基本概念: 1. Excel:Microsoft Excel是一款电子表格程序,允许用户创建、编辑和共享包含数字、文本和公式的数据。 2. MySQL:MySQL是一种...
1. **检查数据类型**:根据MySQL数据库的设计,检查导出的CSV文件中的数据类型是否匹配。 2. **处理特殊字符**:例如,如果Access数据中有逗号或引号,则需要在CSV文件中进行适当的转义处理。 3. **删除不必要的列**...
在PHP编程中,将CSV文件导入到MySQL数据库是一项常见的任务,尤其在数据迁移或数据分析时。下面我们将详细探讨如何通过PHP实现这一功能。 首先,我们需要建立数据库连接。在`config.db.php`文件中,可以看到使用了`...
在完成数据库表的创建后,我们可以使用多种方法将TXT数据导入MySQL: 1. **LOAD DATA INFILE命令**:这是MySQL提供的一种高效导入方法。例如,如果你的TXT文件在服务器本地,可以使用以下命令: ```sql LOAD ...
简明英汉词典的MYSQL/ CSV数据库,适合开发手机词典时使用,包含210311个单词及词组的中英文简明释义,并通过英国国家语料库词频资料前15万单词和美国当代语料库前6万单词范围进行校对,补充了数万词汇,基本做到...
一个简单的例子,使用kettle将文本文件导入到数据库
标题"txt数据文件导入mysql数据库"就是指的这个功能。使用方法如下: ```sql LOAD DATA INFILE 'input_file.txt' INTO TABLE table_name FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' ...