如题,有一EXCEL数据表,现要将此表通过PHP来导入MYSQL数据库,要怎么做到啊?我按照网络上的方法试了一下,但导入数据库的都是乱码,“成功导入数据! 成功导入数据! 成功导入数据! 成功导入数据!##07"?"# 成功导入数据! 成功导入数据! 成功导入数据!#}-}' .00\)_ *}A}) a.00\)_ *骑?-# 成功导入数据! 成功导入数据! 成功导入数据! 成功导入数据! 成功导入数据!#}A} .00\)_ *23-# 成功导入数据! You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1”  以上就是导入后网页上显示的,数据库里也是乱码,这个要怎么写啊?
我用的代码是:
<?
//连接数据库文件
$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); 
 } 
?>

解决方案 »

  1.   

    phpexcel或者pear的一个组件 ,国内有一个excelclass的插件
    都是用来处理excel的,前2个功能都比较强大,对编码的支持也都不错,推荐使用pear的那个,名字好像叫spreadsheet readerphpexcel比较费资源,不过并不是所有的excel都能读取楼主可以到这里去看看 pear.php.net
      

  2.   

    AdO直接上传 注意有些字符mysql或ADO可能不支持
      

  3.   

    首先确认你的数据库是什么编码的,以utf-8为例,
    你首先打开excel 文件,然后保存,选择为另存为.csv文件。
    然后用文本编辑器打开.csv文件,另存为utf-8的csv
    然后你写php 可以使用php 的getcsv  打开(这样确保你有的字段中含有,而导致解析错误),然后把解析的结果导入到数据库中。
    然后完了。
      

  4.   

    到微软网站上去找一下源代码,我们公司以前有人做过把excel表中的数据导入mysql中,不是三言两语能够讲明白的啊
      

  5.   

    介绍一下我的经验,我是吧excel导到txt中然后分行读取得到各条数据然后explode(" ",fgets($file));将各条记录的字段存到数组中
    更详细的请到http://mxp556.blog.hexun.com/23315689_d.html浏览
      

  6.   

    是这个http://mxp556.blog.hexun.com/23315689_d.html
      

  7.   

    也碰到过LZ的问题:我是这样处理的,处理第一行数据,如果要将A,B列字段导入MYSQL,我在第C列,这样写:
    insert into 表名(表字段A,表字段B) values (A1,B1);
    然后往下拖,将所有行的SQL语句生成出来,再将生成的SQL语句复制到MYSQL中执行,就可以了!不知道你那里是否可用……
      

  8.   

    介绍一下我的经验,我是吧excel导到txt中然后分行读取得到各条数据然后explode(" ",fgets($file));将各条记录的字段存到数组中 
    更详细的请到http://mxp556.blog.hexun.com/23315689_d.html浏览为什么要导入txt中,没有这个必要吧!
      

  9.   

    导出为cvs文件,然后可以直接导入到mysql
      

  10.   

    1、phpexcel 官方网站: http://www.codeplex.com/PHPExcel 例子一看就懂
    导入导出都可以实现
    2、
    导出 使用pear的Spreadsheet_Excel_Writer类  http://pear.php.net/package/Spreadsheet_Excel_Writer
    导入 使用PHP-ExcelReader, 下载地址: http://sourceforge.net/projects/phpexcelreader
    一个写excel及导出 一个读excel及导入,我用的是这样的导入导出结合。需要注意的是这种方式导出的excel是95格式的,保存的时候会提示转换到97/03格式。转换格式后的中文才不会是乱码。
      

  11.   


    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."秒";   
      

  12.   

    先另存为CSV文件格式,再用上面的方法改改可以的,我测试过的
      

  13.   

    有个叫phpexcelreader的类,网上有,觉得不错
      

  14.   

    数据库编码与csv文件编码不一致导致
      

  15.   

    有没有操作xls格式的呀,我就想要那个