数据库insert语句循环插入
循环插入怎么样让他在中间某条记录出错的时候不执行插入语句,就是有条数据出错的时候所有数据都不插入if($k>0){$data[$k][0]=trim($data[$k][...
循环插入 怎么样让他在中间某条记录出错的时候 不执行插入语句,就是有条数据出错的时候 所有数据都不插入
if($k>0)
{
$data[$k][0]=trim($data[$k][0]);
$MYSQL->query("select id,class from {$TBLPRE}student where school_id='".$data[$k][0]."'");
$MYSQL->next_record();
$id=$MYSQL->f("id");
$class=$MYSQL->f("class");
$school_id=$data[$k][0];
$MYSQL->query("select tm_id from {$TBLPRE}term where tm_name='".$data[$k][2]."'");
$MYSQL->next_record();
$term=$MYSQL->f("tm_id");
$MYSQL->query("select * from {$TBLPRE}student where school_id='".$data[$k][0]."' and name='".$data[$k][1]."' ");
if($MYSQL->next_record())
{
$MYSQL->query("INSERT INTO {$TBLPRE}stu_remark (remark_sch_id,remark_stu_id,remark_stu_class,remark_user,remark_term,remark_level,remark_content) values ('".$data[$k][0]."','".$id."','".$class."','".$CKUSER[2]."','".$term."','".$data[$k][3]."','".$data[$k][4]."')");
}
else
{
$n=$k+1;
$dispErr="第".$n."条出错,找不到该学生";
break;
}
}
我现在写的代码是 比如说 总共10条记录 第五条出错的时候 前4条 都是插入成功的,
我想要实现的效果是 第五条出错的时候,前面4条也不成功,求大神帮帮忙 展开
if($k>0)
{
$data[$k][0]=trim($data[$k][0]);
$MYSQL->query("select id,class from {$TBLPRE}student where school_id='".$data[$k][0]."'");
$MYSQL->next_record();
$id=$MYSQL->f("id");
$class=$MYSQL->f("class");
$school_id=$data[$k][0];
$MYSQL->query("select tm_id from {$TBLPRE}term where tm_name='".$data[$k][2]."'");
$MYSQL->next_record();
$term=$MYSQL->f("tm_id");
$MYSQL->query("select * from {$TBLPRE}student where school_id='".$data[$k][0]."' and name='".$data[$k][1]."' ");
if($MYSQL->next_record())
{
$MYSQL->query("INSERT INTO {$TBLPRE}stu_remark (remark_sch_id,remark_stu_id,remark_stu_class,remark_user,remark_term,remark_level,remark_content) values ('".$data[$k][0]."','".$id."','".$class."','".$CKUSER[2]."','".$term."','".$data[$k][3]."','".$data[$k][4]."')");
}
else
{
$n=$k+1;
$dispErr="第".$n."条出错,找不到该学生";
break;
}
}
我现在写的代码是 比如说 总共10条记录 第五条出错的时候 前4条 都是插入成功的,
我想要实现的效果是 第五条出错的时候,前面4条也不成功,求大神帮帮忙 展开
3个回答
展开全部
你在建表的时候在sid这个字段上,你定义的类型是Guid 在数据库中是没有这个数据类型的哦。你连表都建不起,你是怎么插入数据的。
还有一个问题,如果你把Guid该成varchar()类型之后再执行你的插入语句一定会报一个异常消息 :
转换 varchar 值 '634294078577187500' 时溢出了整数列。超过了其中最大的整数值。
你定义的lastmodifiedticks数据类型是int类型,而你插入的数据已经大于了整数的位数。
解决方法就是把数据类型该成varchar()类型或char()类型。
还有一个问题,如果你把Guid该成varchar()类型之后再执行你的插入语句一定会报一个异常消息 :
转换 varchar 值 '634294078577187500' 时溢出了整数列。超过了其中最大的整数值。
你定义的lastmodifiedticks数据类型是int类型,而你插入的数据已经大于了整数的位数。
解决方法就是把数据类型该成varchar()类型或char()类型。
追问
这个只是一个插入语句啊,那些建表类的语句没复制出来
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-07-11
展开全部
<?php
if($k>0)
{
$data[$k][0]=trim($data[$k][0]);
$MYSQL->query("select id,class from {$TBLPRE}student where school_id='".$data[$k][0]."'");
$MYSQL->next_record();
$id=$MYSQL->f("id");
$class=$MYSQL->f("class");
$school_id=$data[$k][0];
$MYSQL->query("select tm_id from {$TBLPRE}term where tm_name='".$data[$k][2]."'");
$MYSQL->next_record();
$term=$MYSQL->f("tm_id");
$MYSQL->query("select * from {$TBLPRE}student where school_id='".$data[$k][0]."' and name='".$data[$k][1]."' ");
if($MYSQL->next_record())
{
$MYSQL->query("INSERT INTO {$TBLPRE}stu_remark (remark_sch_id,remark_stu_id,remark_stu_class,remark_user,remark_term,remark_level,remark_content) values ('".$data[$k][0]."','".$id."','".$class."','".$CKUSER[2]."','".$term."','".$data[$k][3]."','".$data[$k][4]."')");
if (mysql_insert_id==0){
$dispErr="第".$n."条出错,插入数据失败";
exit;
}
}
else
{
$n=$k+1;
$dispErr="第".$n."条出错,找不到该学生";
break;
}
}
?>
if($k>0)
{
$data[$k][0]=trim($data[$k][0]);
$MYSQL->query("select id,class from {$TBLPRE}student where school_id='".$data[$k][0]."'");
$MYSQL->next_record();
$id=$MYSQL->f("id");
$class=$MYSQL->f("class");
$school_id=$data[$k][0];
$MYSQL->query("select tm_id from {$TBLPRE}term where tm_name='".$data[$k][2]."'");
$MYSQL->next_record();
$term=$MYSQL->f("tm_id");
$MYSQL->query("select * from {$TBLPRE}student where school_id='".$data[$k][0]."' and name='".$data[$k][1]."' ");
if($MYSQL->next_record())
{
$MYSQL->query("INSERT INTO {$TBLPRE}stu_remark (remark_sch_id,remark_stu_id,remark_stu_class,remark_user,remark_term,remark_level,remark_content) values ('".$data[$k][0]."','".$id."','".$class."','".$CKUSER[2]."','".$term."','".$data[$k][3]."','".$data[$k][4]."')");
if (mysql_insert_id==0){
$dispErr="第".$n."条出错,插入数据失败";
exit;
}
}
else
{
$n=$k+1;
$dispErr="第".$n."条出错,找不到该学生";
break;
}
}
?>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
要用到事务回滚! 事务你可以自己看看,这里也不要什么分了! 你整明白了贴给我看看就好!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询