请教一个问题~~~在一个表单中~  用户输入信息来添加学生信息~@sql语句中 书写的是insert 利用$r= oci_error($stmt) 来获取异常信息但是如何实现提交表单时~~ 只要有一个input的insert语句发生问题(比如插入已经存在的学号,学号是唯一约束)就不会提交表单中所有的数据~ 包括出错input前后所有的输入框输入的数据~~
新手啊~~求赐教~~

解决方案 »

  1.   

    将INSERT 修改成 REPLACE INTOREPLACE INTO `table` (`xxx`,`xxx`) VALUES ('xxxx','xxxx');
      

  2.   

    hoho~~多谢楼上~~已经达到我要的效果了 不过我用的方法还是很笨~  果然感到初学者的鸭梨啊~~贴上代码给大虾们看看  应该怎样改进~多谢各位了~~<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>User Login</title>
    <style type="text/css">
    <!—
    .alert {color: red}
    .textinput {width:160px}
    .btn {width:80px}
    table {border: 3px double;background-color:#eeeeee;}
    -->
    </style>
    <script language="javascript">
    <!--
    function doCheck(){
        if(document.frmLogin._sno.value==""){
            alert('请输入学号!');
            return false;
        }
        if(document.frmLogin._sname.value==""){
            alert('请输入姓名');
            return false;
        }
        if(document.frmLogin._ssex.value==""){
            alert('请输入性别');
            return false;
        }if(document.frmLogin._spw.value.length<2){
            alert('密码长度不能小于2');
            return false;
        }if(document.frmLogin._cno.value==""){
            alert('请输入课程号');
            return false;
        }if(document.frmLogin._cname.value==""){
            alert('请输入课程名');
            return false;
        }if(document.frmLogin._.value==""){
            alert('请输入成绩');
            return false;
        }
    }
    -->
    </script>
    </head>
    <body>
    <form name="frmLogin" method="post" action="manager.php" onSubmit="return doCheck();">
    <table border="0" cellpadding="8" width="350" align="center">
    <tr><td colspan="2" align="center" class="alert"></td></tr>    <td>学 号:  <input name="_sno" type="text" class="textinput" /></td>
    </tr>
    <tr>
        <td>姓 名:  <input name="_sname" type="text"  class="textinput" /></td>
    </tr>
    <tr>
        <td>性 别:  <input name="_ssex" type="text" class="textinput" /></td>
    </tr>
    <tr>
        <td>密 码:  <input name="_spw" type="password" class="textinput" /></td>
    </tr>
    <tr>
        <td>课程号: <input name="_cno" type="text" class="textinput" /></td>
    </tr><tr>
        <td>课程名: <input name="_cname" type="text" class="textinput" /></td>
    </tr>
    <tr>
        <td>成 绩: <input name="_" type="text" class="textinput" /></td>
    </tr><tr><td colspan="2" align="center">
        <input type="submit" class="btn" value="确认" >&nbsp;&nbsp;
        <input type="reset" class="btn" value="重置">
        </td>
    </tr>
    </form>
    </body>
    </html>
    <?php
    include('head.php');
    include('conn.php');
    session_start();
    $_id=$_SESSION['id'];
    //echo $_id;
    if($_id!=1)
    {
    echo "<Script language='JavaScript'> alert('对不起,您无权访问本页面!');</Script>";
    echo "<script language=\"javascript\">location.href='login_out.php';</script>";
    }
    $t_sno = $_POST['_sno'];
    $t_sname = $_POST['_sname'];
    $t_ssex = $_POST['_ssex'];
    $t_spw = $_POST['_spw'];
    $t_cno = $_POST['_cno'];
    $t_cname = $_POST['_cname'];
    $t_ = $_POST['_'];if(!empty($t_sno))
    {
    /*插入学生表信息验证*/
    $query11 = "select * from student where sno='$t_sno'";
    $stmt11 = oci_parse($conn,$query11);
    $result11 = oci_execute($stmt11);
    $row = oci_fetch_array($stmt11);
    if($row)
    {
    echo"<Script language='JavaScript'> alert('已经存在的学号!');</Script>";
    echo "<script language=\"javascript\">location.href='login_out.php';</script>";
    }
    else{
    $query1 = "replace into student values('$t_sno','$t_sname','$t_ssex','$t_spw')";
    $stmt1 = oci_parse($conn,$query1);
    $result1=@oci_execute($stmt1);
    $e1 = oci_error($stmt1);
    $su = '1';
    }
    /*插入课程表信息验证*/
    if($su==1){
    $query3 = "replace into course values('$t_cno','$t_cname')";
    $stmt3 = oci_parse($conn,$query3);
    $result3=@oci_execute($stmt3);
    $e3 = oci_error($stmt3);
    $su = '2';
    if($e3)
    { echo"<Script language='JavaScript'> alert('已经存在的课程号或课程名!');</Script>";
    echo "<script language=\"javascript\">location.href='login_out.php';</script>";
    } } /*插入成绩表信息验证*/
    if($su==2)
    {
    $query2 = "replace into score values('$t_sno','$t_cno','$t_')";
    $stmt2 = oci_parse($conn,$query2);
    $result2=@oci_execute($stmt2);
    $e2 = oci_error($stmt2);
    }if($e1||$e2||$e3)
    {
    echo "<script language=\"javascript\">location.href='login_out.php';</script>";
    } if($result1)
    {
    if($result2)
    {
    if($result3)
    { echo "添加成功!";
    }
    }
    }
    }
      

  3.   

    replace into是不是mysql独有的?
      

  4.   

    纳尼!!那我肿么用在oracle里 , 感觉还不错!~~~  我的是10g的