php excel导入mysql

 更新时间:2016年11月25日 16:39  点击:1654
先们要下载phpexcelreader,然后再看一个简单的把excel数据读取并显示出,实例二是把excel数据导入到mysql数据,实例三是利用php 导入 csv到mysql数据库。
 代码如下 复制代码

require_once './includes/reader.php';
// excelfile($filename, $encoding);
$data = new spreadsheet_excel_reader();
// set output encoding.
$data->setoutputencoding('gbk');
//"data.xls"是指要导入到mysql中(的)excel文件
$data->read('date.xls');
@ $db = mysql_connect('localhost', 'root', '1234') or
die("could not connect to database.");//连接数据库
mysql_query("set names 'gbk'");//输出中文
mysql_select_db('wenhuaedu'); //选择数据库
error_reporting(e_all ^ e_notice);
for ($i = 1; $i <= $data->sheets[0]['numrows']; $i++) {
//以下注释(的)for循环打印excel表数据
 
for ($j = 1; $j <= $data->sheets[0]['numcols']; $j++) {
echo $data->sheets[0]['cells'][$i][$j].",";
}
echo "n";

//ttp://sourceforge.net/projects/phpexcelreader


//下面为导入程序,注明,mysql数据库结构要与xls文档的结构一样就可以了。

 

 代码如下 复制代码

$data = new spreadsheet_excel_reader();
            $data->setoutputencoding('utf-8');//设置编码
            $data->read('test.xls');//excel,csv文件位置
            error_reporting(e_all ^ e_notice);

            for ($i = 2; $i <= $data->sheets[0]['numrows']; $i++) {//插入数据库开始
                    $sql="insert into {$table}kehu (userid,sortid,danwei,xingming,zuncheng,tel,mobile,fax,email,website,qq,address,postcode,sex,beizhu,addtime) values('$_cookie[wecms_user_id]','$sortid',
                                    '".$data->sheets[0]['cells'][$i][1]."',
                                    '".$data->sheets[0]['cells'][$i][2]."',
                                    '".$data->sheets[0]['cells'][$i][3]."',
                                    '".$data->sheets[0]['cells'][$i][4]."',
                                    '".$data->sheets[0]['cells'][$i][5]."',
                                    '".$data->sheets[0]['cells'][$i][6]."',
                                    '".$data->sheets[0]['cells'][$i][7]."',
                                    '".$data->sheets[0]['cells'][$i][8]."',
                                    '".$data->sheets[0]['cells'][$i][9]."',
                                    '".$data->sheets[0]['cells'][$i][10]."',
                                    '".$data->sheets[0]['cells'][$i][11]."',
                                    '".$data->sheets[0]['cells'][$i][12]."',
                                    '".$data->sheets[0]['cells'][$i][13]."',
                                    '$nowtime')";
                    $res=$db->query($sql);

//插入数据库结束
           

}

//把csv导入到数据库。

 代码如下 复制代码

function   getmicrotime(){    
           
              list($usec,   $sec)   =   explode("   ",microtime());    
           
                    return   ((float)$usec   +   (float)$sec);  
            }  
   
  $time_start   =   getmicrotime();  
   
  include   ("connectdb.php");  
   
   
  function   insert_data   ($id,$summary,$description,$additional_information,$category)  
   
      {  
           
          $my_query1   =   "insert   into   mantis_bug_text_table   (id,description,additional_information)    
                 
          values   ('$id','$description','$additional_information')";  
         
          $first   =   mysql_query($my_query1);      
   
          $my_query2   =   "insert   into   mantis_bug_table   (id,project_id,summary,bug_text_id)   values   ('$id','$category','$summary','$id')";  
                 
          $second   =   mysql_query($my_query2);      
         
          return;  
      }  
   
  $fp   =   fopen("test.csv","r");  
   
  while($data   =   fgetcsv($fp,'1000',',')){  
   
              insert_data   ($data[0],$data[1],$data[2],$data[3],$data[4]);  
         
              echo   "<font   color   =   #ff0000   size   =   20>数据导入成功!</font><br><br>";      
      }  
  fclose   ($fp);  
   
  $time_end   =   getmicrotime();  
   
  $time   =   $time_end   -   $time_start;  
   
  echo   "程序执行时间:".$time."秒";  

 代码如下 复制代码

set_time_limit(0); //设置超时时间为0,表示一直执行。当php在safe mode模式下无效,此时可能会导致导入超时,此时需要分段导入
$db =  new mysql($location['host'],$location['hostname'],$location['hostpass'],$location['table'],"utf8",$location['ztime']);  
$fp = @fopen($sql, "r") or die("不能打开sql文件 $sql");//打开文件
while($sql=getnextsql()){
    mysql_query($sql);
}
//echo "用户数据导入完成!";
fclose($fp) or die("can't close file $file_name");//关闭文件

//从文件中逐条取sql
function getnextsql() {
    global $fp;
    $sql="";
    while ($line = @fgets($fp, 40960)) {
        $line = trim($line);
        //以下三句在高版本php中不需要,在部分低版本中也许需要修改
        //$line = str_replace("\\","\",$line);
        //$line = str_replace("'","'",$line);
        //$line = str_replace("\r\n",chr(13).chr(10),$line);
        //$line = stripcslashes($line);
        if (strlen($line)>1) {
            if ($line[0]=="-" && $line[1]=="-") {
                continue;
            }
        }
        $sql.=$line.chr(13).chr(10);
        if (strlen($line)>0){
            if ($line[strlen($line)-1]==";"){
                break;
            }
        }
    }
    return $sql;
}
?>

 

本文章提供一款由php pdo mysql操作实例教程了,这是由php pdo查询mysql数据并显示
 代码如下 复制代码
try {
    $dbh = new pdo($beidou_connstr,$beidou_user,$beidou_pass);
    foreach ($dbh->query('select count(*) as count1, count(*) as count2 from bd_reve.user_day') as $row) {
        print_r($row);
    }
    $dbh = null;
} catch (pdoexception $e) {
    print "error!: " . $e->getmessage() . "<br/>";
    die();
}
 代码如下 复制代码

<html><heae>         
<title>php教程读取excel并查询指定数据</title>         
<body><center>成绩查询系统<hr>         
<table border=0><tr>         
<td bgcolor=red align=center)成绩查询系统输入界面</td>         
<td bgcolor=tintyellow align=left rowspan=2>说明 :<br>        
请输入正确且完整的数据.<br>        
本查询系统仅供参考,实际以成绩单为准.<br>        
例如:查询 2001 学年第一学期二专资管科一年级一班<br>    
学号输入格式范例:c017037<br>        
<br></td><tr>        
<td bgcolor=tintblue align=center><center><form action=nscore.php method=get>        
<select name=pl>        
<option value=2001>2001        
<option value=2002>2002        
<option value=2003>2003        
<option value=2004>2004        
</select)学年第        
<select name=p2>        
<option value=1>一        
<option value=2>二        
</select>学期<br>        
<select name=p3>        
<option value=1>二专        
<option value=2>二技         
<option value=3>四技        
</select>学制        
<select name=p4>        
<option value=1>电子                         
<option value=2>电机        
<option value=3>机械        
<option value=4>土木        
<option  value=5>经管        
<option value=6>环工        
<option value=7>资管        
<option value=8>应外        
</select>系/科        
<select name=p5>        
<option value=1>一        
<option value=2>二        
<option value=3>三        
</select>年级        
<select name=p6>        
<option value=1>一        
<option value=2>二        
<option value=3>三        
<option value=4>四        
</select>班<br>        
<b>学号:</b><input size=10 name=no><br><br>        
<input type=submit value=确定 name=submit>        
</form>        
</center></td>        
</tr>        
</table>        
<hr>            
</body></html>

php代码

<?php
$filename=$pl.$p2.$p3.trim($p4).trim($p5).trim($p6). ".dbf";        
if (file_exists($filename))(        
$f=dbase_open($fiiename,0);        
$k=dbase_get_record($f,1);
for($i=2;$i<dbase_numrecords($f);$i++){        
 $a=dbase_get_record($f,$i);        
 if($no==trim($a[0])){        
  echo "<html><center>成绩查询系统";        
  echo "<hr>";        
  echo "$a[0] $a[1]<br>";;        
  echo "<table border=1>";        
  echo"<tr><td><center>科目名称</td><td)<center>分数</td>";        
  for ($j=2;$j<(dbase_numfields($f));$j++){       
   echo "<tr><td><center>$k[$j]</td><center>$a[$j]</td>";       
  }//end for j       
  break;       
 }//end if        
}//end for i
echo "</tr>";        
dbase_close($f);        
} else {        
echo "错误信息:成绩数据库教程尚未建立<br>";       
}        
if($no=="") {echo "错误信息:请输入学号<br>";}
?> 

文章提供一款简单的mysql 查询数据库数据的代码,可以查询blog里面所有数据并且显示出来。
 代码如下 复制代码

session_start();
$conn=mysql_connect('localhost','root','root')or die('数据库连接错误');
mysql_select_db('demo',$conn);
mysql_query("set names 'gbk'");
$us=$_session['username'];
$selequery=mysql_query("select * from blog where author='$us' order by id desc")or die("查询失败");
?>

<?php while($selerow=mysql_fetch_array($selequery)){
 
?>
<form action="" method="post" name="modform">
  <table width="100%" border="1">
    <tr>
      <td width="100">作者:</td>
      <td><?php echo $_session['username']."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;".$selerow['redate'];?></td>
    </tr>
    <tr>
      <td width="100">留言标题:</td>
      <td><?php echo $selerow['title'];?></td>
    </tr>
    <tr>
      <td>留言内容:</td>
      <td><?php echo $selerow['content'];?></td>
    </tr>
      <tr>
      <td colspan="2" align="center"><input type="submit" value="修改" name="sub"></input></td>
    </tr>
  </table>
 </form>
  <br>
 
  <?php }?> 

 

 

<!--<?php
 for($i=1;$i<$selerow=mysql_num_rows($selequery);$i++){
  if($i<$selerow=mysql_num_rows($selequery)){?>
 
   <table><tr><td><?php echo $selerow['title'];?></td></tr></table>
   <hr color="red"></hr>
  <?php
  }else{?>
  <table></table>
<?php
 }}
 


 
 /*
 drop table if exists `blog`;
create table `blog` (
  `id` int(10) not null auto_increment,
  `author` varchar(50) not null,
  `title` varchar(50) not null,
  `content` text,
  `redate` date not null,
  primary key (`id`)
) engine=innodb auto_increment=5 default charset=gbk;

-- ----------------------------
-- records of blog
-- ----------------------------
insert into `blog` values ('1', 'admin', '我', '<p>呜呜呜</p>', '2010-07-31');
insert into `blog` values ('2', 'admin', '第五', '<p>我的</p>', '2010-07-31');
insert into `blog` values ('3', 'admin', '我的', '<p>去权威的物权法</p>', '2010-07-31');
insert into `blog` values ('4', '111111', '大武器', '<p>的弯曲的千万</p>', '2010-07-31');
 */

[!--infotagslink--]

相关文章

  • MySQL性能监控软件Nagios的安装及配置教程

    这篇文章主要介绍了MySQL性能监控软件Nagios的安装及配置教程,这里以CentOS操作系统为环境进行演示,需要的朋友可以参考下...2015-12-14
  • 详解Mysql中的JSON系列操作函数

    新版 Mysql 中加入了对 JSON Document 的支持,可以创建 JSON 类型的字段,并有一套函数支持对JSON的查询、修改等操作,下面就实际体验一下...2016-08-23
  • 深入研究mysql中的varchar和limit(容易被忽略的知识)

    为什么标题要起这个名字呢?commen sence指的是那些大家都应该知道的事情,但往往大家又会会略这些东西,或者对这些东西一知半解,今天我总结下自己在mysql中遇到的一些commen sense类型的问题。 ...2015-03-15
  • MySQL 字符串拆分操作(含分隔符的字符串截取)

    这篇文章主要介绍了MySQL 字符串拆分操作(含分隔符的字符串截取),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-22
  • mysql的3种分表方案

    一、先说一下为什么要分表:当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,有可能会死在那儿了。分表的目的就在于此,减小数据库的负担,缩短查询时间。根据个人经验,mysql执行一个sql的过程如下:1...2014-05-31
  • Windows服务器MySQL中文乱码的解决方法

    我们自己鼓捣mysql时,总免不了会遇到这个问题:插入中文字符出现乱码,虽然这是运维先给配好的环境,但是在自己机子上玩的时候咧,总得知道个一二吧,不然以后如何优雅的吹牛B。...2015-03-15
  • Centos5.5中安装Mysql5.5过程分享

    这几天在centos下装mysql,这里记录一下安装的过程,方便以后查阅Mysql5.5.37安装需要cmake,5.6版本开始都需要cmake来编译,5.5以后的版本应该也要装这个。安装cmake复制代码 代码如下: [root@local ~]# wget http://www.cm...2015-03-15
  • 用VirtualBox构建MySQL测试环境

    宿主机使用网线的时候,客户机在Bridged Adapter模式下,使用Atheros AR8131 PCI-E Gigabit Ethernet Controller上网没问题。 宿主机使用无线的时候,客户机在Bridged Adapter模式下,使用可选项里唯一一个WIFI选项,Microsoft Virtual Wifi Miniport Adapter也无法上网,故弃之。...2013-09-19
  • 详解在IDEA中将Echarts引入web两种方式(使用js文件和maven的依赖导入)

    这篇文章主要介绍了在IDEA中将Echarts引入web两种方式(使用js文件和maven的依赖导入),本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11
  • 忘记MYSQL密码的6种常用解决方法总结

    首先要声明一点,大部分情况下,修改MySQL密码是需要有mysql里的root权限的...2013-09-11
  • MySQL数据库备份还原方法

    MySQL命令行导出数据库: 1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录 如我输入的命令行:cd C:/Program Files/MySQL/MySQL Server 4.1/bin (或者直接将windows的环境变量path中添加该目录) ...2013-09-26
  • Mysql命令大全(详细篇)

    一、连接Mysql格式: mysql -h主机地址 -u用户名 -p用户密码1、连接到本机上的MYSQL。首先打开DOS窗口,然后进入目录mysql/bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是密...2015-11-08
  • Navicat for MySQL 11注册码\激活码汇总

    Navicat for MySQL注册码用来激活 Navicat for MySQL 软件,只要拥有 Navicat 注册码就能激活相应的 Navicat 产品。这篇文章主要介绍了Navicat for MySQL 11注册码\激活码汇总,需要的朋友可以参考下...2020-11-23
  • mysql IS NULL使用索引案例讲解

    这篇文章主要介绍了mysql IS NULL使用索引案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下...2021-08-14
  • 基于PostgreSQL和mysql数据类型对比兼容

    这篇文章主要介绍了基于PostgreSQL和mysql数据类型对比兼容,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-12-25
  • RHEL6.5编译安装MySQL5.6.26教程

    一、准备编译环境,安装所需依赖包yum groupinstall 'Development' -y yum install openssl openssl-devel zlib zlib-devel -y yum install readline-devel pcre-devel ncurses-devel bison-devel cmake -y二、编译安...2015-10-21
  • Mysql中 show table status 获取表信息的方法

    这篇文章主要介绍了Mysql中 show table status 获取表信息的方法的相关资料,需要的朋友可以参考下...2016-03-12
  • 20分钟MySQL基础入门

    这篇文章主要为大家分享了20分钟MySQL基础入门教程,快速掌握MySQL基础知识,真正了解MySQL,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-12-02
  • mongodb与mysql命令详细对比

    传统的关系数据库一般由数据库(database)、表(table)、记录(record)三个层次概念组成,MongoDB是由数据库(database)、集合(collection)、文档对象(document)三个层次组成。MongoDB对于关系型数据库里的表,但是集合中没有列、行和关...2013-09-11
  • node.js如何操作MySQL数据库

    这篇文章主要介绍了node.js如何操作MySQL数据库,帮助大家更好的进行web开发,感兴趣的朋友可以了解下...2020-10-29