免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5213 | 回复: 11
打印 上一主题 下一主题

[问题已解决]关于txt导入mysql 问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-08-31 21:27 |只看该作者 |倒序浏览
20060719|151400|1223w|GG
20060719|151400|1234ew|GG
20060719|151400|wweqq|GG

TXT文件导入到MYSQL 我用下面的程序 为什么只能导入第一行呢??
还有就是怎么判断目录下的这个文件已经导入过了呢?

现在我把我的数据库表结构发来 然后 把 TXT 文件也发来

CREATE TABLE `test` (
  `sid` int( NOT NULL auto_increment,
  `stime` varchar(1 NOT NULL default '',
  `sdata` varchar( NOT NULL default '',
  `stel` varchar(11) NOT NULL default '',
  `scontent` varchar(50) NOT NULL default '',
  PRIMARY KEY  (`sid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;



<?
  include ( 'include/config.php' );
  $connect=mysql_connect("$dbserv","$dbuser","$dbpass";
  $f=file("172010.txt");
  $q=count($f);


for($i=0;$i<count($f);$i++){
     $arr=explode("|",$f[$i]); //建议文本文件中用“|”号分隔字段,用“,”的程序可读性差
   
     
      print_r ($arr);
      echo "<hr>";
      echo $q;
      echo "<hr>";
      echo $buffer[0];
      echo "<hr>";
      echo $arr[1];
      echo "<hr>";
      echo $arr[2];
      echo "<hr>";
      echo $arr[3];
      echo "<hr>";
      $query =@"INSERT INTO test ( sid , stime ,sdata , stel , scontent ) VALUES ( ' ','$arr[1]','$arr[0]','$arr[2]','$arr[3]')";
   
      $result=@mysql_db_query("$dbname",$query);        
                if($result)
                 {echo "数据导入成功"; exit;}(这里的问题)
                else
                   {echo "数据已经导入,不能重复导入"; exit;}(就是这里的问题)  }
?>

[ 本帖最后由 jy_soft 于 2006-9-4 09:48 编辑 ]

172010.rar

156 Bytes, 下载次数: 117

需要处理的txt文件

论坛徽章:
0
2 [报告]
发表于 2006-09-01 09:27 |只看该作者

  1. $f=file("1.txt");
  2.   $q=count($f);
  3.         while (!feof($f)){
  4.                 $buffer = fgets($fp,4096);
  5.                 echo $buffer;
  6.         }

复制代码

这段会把你的机器搞死的
feof操作的是文件指针

论坛徽章:
0
3 [报告]
发表于 2006-09-01 10:41 |只看该作者
今天修改了一下 但还是只可以导入第一行 其他的就导入不了了!!

论坛徽章:
0
4 [报告]
发表于 2006-09-01 10:45 |只看该作者
顶,

论坛徽章:
0
5 [报告]
发表于 2006-09-01 10:48 |只看该作者
用这个吧:
        function readTextFile() {   
                clearstatcache();        
                $fd = fopen ($this->filename, "r");
                if (filesize($this->filename)==0) {
               
                } else
                {
                $this->text_data = fread ($fd, filesize ($this->filename));  
        }
                fclose ($fd);            
        }

论坛徽章:
0
6 [报告]
发表于 2006-09-01 11:03 |只看该作者
看看你insert 的id
是否mysql设定的id 为auto_increment
而你插入数据的id 是一样的 那样就会有问题

论坛徽章:
0
7 [报告]
发表于 2006-09-01 11:34 |只看该作者
我的意思是好象我写的不可以循环忘下读数据了
插入后只能写入第一行!!

论坛徽章:
0
8 [报告]
发表于 2006-09-01 11:56 |只看该作者
倒 怎么可能 总有调试信息吧 insert 成功了没

论坛徽章:
0
9 [报告]
发表于 2006-09-01 12:00 |只看该作者
id是一样的,导得进去才是见鬼了

论坛徽章:
0
10 [报告]
发表于 2006-09-01 12:46 |只看该作者
现在我把我的数据库表结构发来 然后 把 TXT 文件也发来

CREATE TABLE `test` (
  `sid` int( NOT NULL auto_increment,
  `stime` varchar(1 NOT NULL default '',
  `sdata` varchar( NOT NULL default '',
  `stel` varchar(11) NOT NULL default '',
  `scontent` varchar(50) NOT NULL default '',
  PRIMARY KEY  (`sid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;



<?
  include ( 'include/config.php' );
  $connect=mysql_connect("$dbserv","$dbuser","$dbpass";
  $f=file("smstxt/backup/swt20060831171824.txt";
  $q=count($f);


for($i=0;$i<count($f);$i++){
     $arr=explode("|",$f[$i]); //建议文本文件中用“|”号分隔字段,用“,”的程序可读性差
   
     
      print_r ($arr);
      echo "<hr>";
      echo $q;
      echo "<hr>";
      echo $buffer[0];
      echo "<hr>";
      echo $arr[1];
      echo "<hr>";
      echo $arr[2];
      echo "<hr>";
      echo $arr[3];
      echo "<hr>";
      $query =@"INSERT INTO test ( sid , stime ,sdata , stel , scontent ) VALUES ( ' ','$arr[1]','$arr[0]','$arr[2]','$arr[3]')";
   
      $result=@mysql_db_query("$dbname",$query);        
                if($result)
                 {echo "数据导入成功"; exit;}
                else
                   {echo "数据已经导入,不能重复导入"; exit;}
  }
?>
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP