上传csv文件,导入数据库问题,始终不成功~~代码附上

bobacer 2011-08-01 03:35:56
<input type="file" name="exngcsv" >
<input type="submit" value="导入数据" name="exngsend" >


if($exngcsv!="none" && $exngcsv!=""){

$fhandle=fopen($exngcsv,"r");

while($data=fgetcsv($fhandle,1000,",")) {
$ocno=trim($data[0]);
$ccy=trim($data[1]);

$sql="insert into tmp_fx values ('$ocno','$ccy')";
//echo "$sql;<br>";
ora_parse($cursor, $sql) or die;
ora_exec($cursor);
}
fclose($fhandle);
}
以上代码能够实现csv文件中的数据插入oracle数据库
----------------------------------------
if (isset($_POST['exngsend'])){

$file = $_FILES['exngcsv'];

$file_type = substr(strstr($file['name'],'.'),1);
//echo '<pre>';print_r($_SERVER);
// 检查文件格式
if ($file_type != 'csv'){
echo '文件格式不对,请重新上传!';
exit;
}
$handle = fopen($file['tmp_name'],"r");

$row = 0;
while ($data = fgetcsv($handle,1000,',')){
//echo "<font color=red>$row</font>"; //可以知道总共有多少行
$row++;
$num = count($data);
// 这里会依次输出每行当中每个单元格的数据
for ($i=0; $i<$num; $i++){
echo $data[$i]."<br>";
// 在这里对数据进行处理
}
}

fclose($handle);
}
这段代码可以读出csv文件中的数据,但是加上下面这段数据库操作语言后,SQl语句都对,但就是不能插入数据卡,不知道什么原因
$ocno=trim($data[0]);
$ccy=trim($data[1]);

$sql="insert into tmp_fx values ('$ocno','$ccy')";
//echo "$sql;<br>";
ora_parse($cursor, $sql) or die;
ora_exec($cursor);
...全文
643 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
skyaspnet 2011-08-03
  • 打赏
  • 举报
回复
(1)检测CSV文件中是否有特殊字符;

(2)检查上传代码是否正确,可以先用一条记录的CSV文件进行测试。
xuzuning 2011-08-03
  • 打赏
  • 举报
回复
既然是无错,那么还是你代码写错了

你是这样写的
//echo "$sql;<br>";
ora_parse($cursor, $sql) or die;
ora_exec($cursor);
那个 or die 就不应该要了,die 就是中断程序的执行。后面的 ora_exec($cursor); 也就不会执行了

oracle 函数与其他数据库函数还是有很大区别的!
bobacer 2011-08-03
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 bobacer 的回复:]
引用 8 楼 xuzuning 的回复:
ora_parse($cursor, $sql) or die;
改为
ora_parse($cursor, $sql);

ora_parse($cursor, $sql) or die(ora_error());


明天来试试,试试都没信心了
[/Quote]

试了一下,居然报错是ORA-00000: normal, successful completion


很简单的是insert语句啊,无解
bobacer 2011-08-03
  • 打赏
  • 举报
回复
150237668 4001000
150155409 4001000
150207404 4001000
150160310 4001000
150238820 4001000
150226741 4001000
这个就是数据
//echo "$sql;<br>";
我用echo打出sql语句,放在toad里面都能执行成功,无解了
xuzuning 2011-08-03
  • 打赏
  • 举报
回复
贴出你的数据
bobacer 2011-08-03
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 xuzuning 的回复:]
既然是无错,那么还是你代码写错了

你是这样写的
//echo "$sql;<br>";
ora_parse($cursor, $sql) or die;
ora_exec($cursor);
那个 or die 就不应该要了,die 就是中断程序的执行。后面的 ora_exec($cursor); 也就不会执行了

oracle 函数与其他数据库函数还是有很大区别的!……
[/Quote]
把or die去了也是一样啊,页面显示成功,但是数据库里没有数据插入
bobacer 2011-08-02
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 hailangtuoyue 的回复:]
最好附上错误提示。? 是不是索引的问题,唯一性啦,是不是本身获取的值是空的,而已存在此记录了 //echo "$sql;<br>";输出结果又是什么?
找问题也得有个步骤啊

[/Quote]

这段代码可以读出csv文件中的数据,但是加上下面这段数据库操作语言后,SQl语句都对,但就是不能插入数据卡,不知道什么原因
$ocno=trim($data[0]);
$ccy=trim($data[1]);

$sql="insert into tmp_fx values ('$ocno','$ccy')";
//echo "$sql;<br>";
ora_parse($cursor, $sql) or die;
ora_exec($cursor);
hailangtuoyue 2011-08-02
  • 打赏
  • 举报
回复
最好附上错误提示。? 是不是索引的问题,唯一性啦,是不是本身获取的值是空的,而已存在此记录了 //echo "$sql;<br>";输出结果又是什么?
找问题也得有个步骤啊
bobacer 2011-08-02
  • 打赏
  • 举报
回复
高手在哪儿啊
bobacer 2011-08-02
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 xuzuning 的回复:]
ora_parse($cursor, $sql) or die;
改为
ora_parse($cursor, $sql);

ora_parse($cursor, $sql) or die(ora_error());
[/Quote]

明天来试试,试试都没信心了
wbandzlhgod 2011-08-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 bobacer 的回复:]
引用 3 楼 wbandzlhgod 的回复:
http://blog.csdn.net/wbandzlhgod/article/details/6651173


我想知道我的代码哪儿不对,应该是数据库插入的那一段
[/Quote]

个人认为调试代码时 是最难、最有意思的、最能学到知识
xuzuning 2011-08-02
  • 打赏
  • 举报
回复
ora_parse($cursor, $sql) or die;
改为
ora_parse($cursor, $sql);

ora_parse($cursor, $sql) or die(ora_error());

bobacer 2011-08-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wbandzlhgod 的回复:]
http://blog.csdn.net/wbandzlhgod/article/details/6651173
[/Quote]

我想知道我的代码哪儿不对,应该是数据库插入的那一段
wbandzlhgod 2011-08-01
  • 打赏
  • 举报
回复
http://blog.csdn.net/wbandzlhgod/article/details/6651173
bobacer 2011-08-01
  • 打赏
  • 举报
回复
应该是没有特殊字符,因为同一个csv文件,第一段程序上传导入是成功的,第二段就不行
不过,想多学点东西,如果有“’”的话,怎么操作,请指教
xuzuning 2011-08-01
  • 打赏
  • 举报
回复
没有看到对特使字符的转义操作,你确认数据中没有特殊字符“'”吗?

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧