关于数据导入mysql的一个问题,高手进来...... 用phpmyadmin,或者把data.txt文件内容导入一个变量,分行循环进行query插入。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个功能不实用,因为一般情况下,用户不太可能有自己的服务器,必须是远程使用数据库,而这个命令的使用需要有较高的使用权限(write权限),而一般供应商不可能开这个权限给客人.所以,这个功能不实用....如果楼主是要用这个来干活的,建议找别的方法,或者能够让供应商开这个权限再考虑下去吧 mysql_query("Load Data Local Infile 'path/data.txt' into table tbl_test");注意path应为绝对路径。如指向网站下的某个目录,一般不存在读权限问题。 我的最老土,就是自己写程序导入.思路就是,不管数据是在数据库里面,还是其它文本文件里面,先打开原数据所在的文件或者数据库.一行一行的按要求读取出来.然后在mysql数据库里面建上同名,同结构的表.一行一行的写就可以了.可能占的时间长一点,但是绝对可靠.可以参考. 先用fopen()函数取出你要的文件.接着就是读取.fgets(),然后就是循环执行... 自己写的话怎么写呢?能不能提供点思路,或者有没有范例给我看看啊?谢谢你了!-----------------------------------------------------这个问题我曾经遇到过:请见关于mysql数据库导入文本数据的问题 http://community.csdn.net/Expert/topic/3186/3186682.xml?temp=.1114313http://community.csdn.net/Expert/topic/3206/3206823.xml?temp=.1155359http://community.csdn.net/Expert/topic/3201/3201758.xml?temp=.4498102对于Load Data Local Infile 文本的方法确实存在远程服务器操作的问题下边我说说当时我自己的解决办法吧:读取文本>切割文本>生成sql语句>按数据插入mysql数据库以下是部分代码(自己修改):1、读取文本数据$filename = "data.txt";$farray = file($filename);$i=0; while($myrow=mysql_fetch_array($query)){ $r[$i][0]=$myrow[0]; $r[$i][1]=$myrow[1]; $r[$i][2]=$mytow[2]; $r[$i][3]=$mytow[3]; $r[$i][4]=$mytow[4]; $r[$i][5]=$mytow[5]; $r[$i][6]=$mytow[6]; $r[$i][7]=$mytow[7]; $i++;//读取文本(根据需要循环读取)2、切割文本$str = $farray[0]; $piece = explode("\t",$str); for($i = 0;$i < count($farray);$i++){ $str = $farray[$i]; $piece = explode("\t",$str);//循环切割字串3、生成sql语句进行数据插入$query = "insert into data(列1,列2,列3,列4,列5,列6,列7,列8,....) values('$piece[1]','$piece[2]','$piece[3]','$piece[4]','$piece[5]','$piece[6]','$piece[7]','$piece[8]',...)"; mysql_query($query,$conn);以上假设数据表为data,给出的只是具体步骤,自己修改完善程序服务器在远程的话,data文本必须能够上传(一般不会存在读取权限问题)其中切割非常关键,这儿假设文本数据的分割符为 这儿假设文本数据的分割符是TAB,具体情况自己分析解决 在php中用函数调用外部命令编译c++ 老调丛谈,还是这个弱智的问题,大牛帮看看哈.. fsockopen返回错误Network is unreachable 我有一个php程序如何运行的疑问????? 不同页面JS如何传值给PHP页面 请教多个弹出框之间传值的问题 计数器问题,你一定会。 php+mysql的安装与配置 有php网页设计经验的老手请进 论坛的速度一般与什么有关啊? 格式化日期? 为什么这个在MYSQL里面不能执行,看不出那里有错
是远程使用数据库,而这个命令的使用需要有较高的使用权限(write权限),
而一般供应商不可能开这个权限给客人.所以,这个功能不实用....如果楼主是要用这个来干活的,建议找别的方法,或者能够让供应商开这个
权限再考虑下去吧
接着就是读取.fgets(),然后就是循环执行...
能不能提供点思路,或者有没有范例给我看看啊?谢谢你了!
-----------------------------------------------------
这个问题我曾经遇到过:请见关于
mysql数据库导入文本数据的问题 http://community.csdn.net/Expert/topic/3186/3186682.xml?temp=.1114313
http://community.csdn.net/Expert/topic/3206/3206823.xml?temp=.1155359
http://community.csdn.net/Expert/topic/3201/3201758.xml?temp=.4498102对于Load Data Local Infile 文本的方法确实存在远程服务器操作的问题
下边我说说当时我自己的解决办法吧:读取文本>切割文本>生成sql语句>按数据插入mysql数据库
以下是部分代码(自己修改):
1、读取文本数据
$filename = "data.txt";
$farray = file($filename);
$i=0;
while($myrow=mysql_fetch_array($query)){
$r[$i][0]=$myrow[0];
$r[$i][1]=$myrow[1];
$r[$i][2]=$mytow[2];
$r[$i][3]=$mytow[3];
$r[$i][4]=$mytow[4];
$r[$i][5]=$mytow[5];
$r[$i][6]=$mytow[6];
$r[$i][7]=$mytow[7];
$i++;//读取文本(根据需要循环读取)2、切割文本
$str = $farray[0];
$piece = explode("\t",$str);
for($i = 0;$i < count($farray);$i++){
$str = $farray[$i];
$piece = explode("\t",$str);//循环切割字串3、生成sql语句进行数据插入
$query = "insert into data(列1,列2,列3,列4,列5,列6,列7,列8,....) values('$piece[1]','$piece[2]','$piece[3]','$piece[4]','$piece[5]','$piece[6]','$piece[7]','$piece[8]',...)";
mysql_query($query,$conn);以上假设数据表为data,给出的只是具体步骤,自己修改完善程序
服务器在远程的话,data文本必须能够上传(一般不会存在读取权限问题)
其中切割非常关键,这儿假设文本数据的分割符为