php中的mysql update命令无法正常工作

时间:2014-10-19 18:24:50

标签: php mysql forms

这是我使用的代码。我使用表单获取数据并更新数据库。请告诉我错误是什么。我正在使用wamp Server。

 $con=mysqli_connect("localhost","root","","placement");
     if(mysqli_connect_errno())
    {
    echo".mysqli_connect_error()";
    }

          $grad="";
if(isset($_POST['Grad']))
foreach($_POST['Grad'] as $checkgrad){
        $grad=$grad.$checkgrad;
    }

$dept="";
foreach($_POST['Dept'] as $checkdept)
    if(isset($_POST['Dept'])){
        $dept=$dept.$checkdept;
    }

$arr=$_POST['arr'] ;

if (($grad != "UR")&&($arr == "wa")){
    mysqli_query($con,"Update placementdetails set Location='$_POST[location]',
    Eligibility='$grad',Arrears='$_POST[arr]',No_of_arrears='$_POST[Arrno].,Department='$dept',
        Current_cgpa='$_POST[cgpa]',Marks_10th='$_POST[tenth]',Marks_12th='$_POST[twelveth]',
 Marks_Btech='$_POST[Btech]',Emoluments='$_POST[emoluments]',Placement_Process='$_POST[process]',
        Pldate='$_POST[dat]',Pltime='$_POST[tim]' where Company_name='$_POST[company]')");
}


else if (($grad == "UR")&&($arr == "wa")){
    mysqli_query($con,"Update placementdetails set Location='$_POST[location]',
    Eligibility='$grad',Arrears='$_POST[arr]',No_of_arrears='$_POST[Arrno]',Department='$dept',
        Current_cgpa='$_POST[cgpa]',Marks_10th='$_POST[tenth]',Marks_12th='$_POST[twelveth]',
        Marks_Btech=' ',Emoluments='$_POST[emoluments]',Placement_Process='$_POST[process]',
        Pldate='$_POST[dat]',Pltime='$_POST[tim]' where Company_name='$_POST[company]')");
}



else if (($grad != "UR")&&($arr != "wa")){
    mysqli_query($con,"Update placementdetails set Location='$_POST[location]',
    Eligibility='$grad',Arrears='$_POST[arr]',No_of_arrears='$_POST[Arrno]',Department='$dept',
        Current_cgpa='$_POST[cgpa]',Marks_10th='$_POST[tenth]',Marks_12th='$_POST[twelveth]',
Marks_Btech='$_POST[Btech]',Emoluments='$_POST[emoluments]',Placement_Process='$_POST[process]',
        Pldate='$_POST[dat]',Pltime='$_POST[tim]' where Company_name='$_POST[company]')");
}



else{
    mysqli_query($con,"Update placementdetails set Location='$_POST[location]',
    Eligibility='$grad',Arrears='$_POST[arr]',No_of_arrears='$_POST[Arrno]',Department='$dept',
        Current_cgpa='$_POST[cgpa]',Marks_10th='$_POST[tenth]',Marks_12th='$_POST[twelveth]',
        Marks_Btech=' ',Emoluments='$_POST[emoluments]',Placement_Process='$_POST[process]',
        Pldate='$_POST[dat]',Pltime='$_POST[tim]' where Company_name='$_POST[company]')");
}

即使没有错误也没有用,但下面给出的类似插入代码工作正常:

            $con=mysqli_connect("localhost","root","","placement");
            if(mysqli_connect_errno())
            {
                echo".mysqli_connect_error()";
            }

            $grad="";
            if(isset($_POST['Grad']))
            foreach($_POST['Grad'] as $checkgrad){
                $grad=$grad.$checkgrad;
            }

            $dept="";
            foreach($_POST['Dept'] as $checkdept)
                if(isset($_POST['Dept'])){
                    $dept=$dept.$checkdept;
                }

            $arr=$_POST['arr'] ;

            if (($grad != "UR")&&($arr == "wa")){
                mysqli_query($con,"Insert into Placementdetails (Company_name,Location,Eligibility,
                Arrears,No_of_arrears,Department,Current_cgpa,Marks_10th,Marks_12th,Marks_Btech,
                Emoluments,Placement_Process,Pldate,Pltime) 
                values('$_POST[company]','$_POST[location]','$grad','$_POST[arr]',
                $_POST[Arrno],'$dept','$_POST[cgpa]','$_POST[tenth]','$_POST[twelveth]',
                '$_POST[Btech]','$_POST[emoluments]','$_POST[process]','$_POST[dat]','$_POST[tim]')");
            }
            else if (($grad == "UR")&&($arr == "wa")){
                mysqli_query($con,"Insert into Placementdetails (Company_name,Location,Eligibility,
                Arrears,No_of_arrears,Department,Current_cgpa,Marks_10th,Marks_12th,Marks_Btech,
                Emoluments,Placement_Process,Pldate,Pltime) 
                values('$_POST[company]','$_POST[location]','$grad','$_POST[arr]',
                $_POST[Arrno],'$dept','$_POST[cgpa]','$_POST[tenth]','$_POST[twelveth]',
                'null','$_POST[emoluments]','$_POST[process]','$_POST[dat]','$_POST[tim]')");
            }
            else if (($grad != "UR")&&($arr != "wa")){
                mysqli_query($con,"Insert into Placementdetails (Company_name,Location,Eligibility,
                Arrears,No_of_arrears,Department,Current_cgpa,Marks_10th,Marks_12th,Marks_Btech,
                Emoluments,Placement_Process,Pldate,Pltime) 
                values('$_POST[company]','$_POST[location]','$grad','$_POST[arr]','null','$dept',
                '$_POST[cgpa]','$_POST[tenth]','$_POST[twelveth]','$_POST[Btech]','$_POST[emoluments]',
                '$_POST[process]','$_POST[dat]','$_POST[tim]')");
            }
            else{
                mysqli_query($con,"Insert into Placementdetails                                                                                                                                    (Company_name,Location,Eligibility,
                Arrears,No_of_arrears,Department,Current_cgpa,Marks_10th,Marks_12th,Marks_Btech,
                Emoluments,Placement_Process,Pldate,Pltime) 
                values('$_POST[company]','$_POST[location]','$grad','$_POST[arr]','null','$dept',
                '$_POST[cgpa]','$_POST[tenth]','$_POST[twelveth]','null','$_POST[emoluments]',
                '$_POST[process]','$_POST[dat]','$_POST[tim]')");
            }



            $comp = str_replace(' ', '', $_POST[company]);
            db($comp);
            mysqsli_close($con);

请告诉我更新代码有什么问题.................

2 个答案:

答案 0 :(得分:1)

您的查询中存在语法错误。

更改这样的每个变量,你缺少single quete以及下面应该是的 $_POST['location']但你拥有它$_POST[location] 您的查询末尾有两个括号);

多数民众赞成我更新了我的答案。您的整个查询都看起来改变旁边的

mysqli_query($con,"Insert into Placementdetails (Company_name,Location,Eligibility,
                Arrears,No_of_arrears,Department,Current_cgpa,Marks_10th,Marks_12th,Marks_Btech,
                Emoluments,Placement_Process,Pldate,Pltime) 
                values('".$_POST['company']."','".$_POST['location']."','".$grad."','".$_POST['arr']."',
                '".$_POST['Arrno']."','".$dept."','".$_POST['cgpa']."','".$_POST['tenth']."',
        '".$_POST['twelveth']."',
                '".$_POST['Btech']."','".$_POST['emoluments']."','".$_POST['process']."','".$_POST['dat']."'
        ,'".$_POST['tim']."'");

下面是更新的语法

mysqli_query($con,"Update placementdetails set Location='".$_POST['location']."'

更改上面的其他变量

不要将用户输入直接用于查询。

Mysqli_不会自动保护您的查询。使用bind param

答案 1 :(得分:0)

   try this
  mysqli_query($con,"Update placementdetails set Location='".$_POST['location']."',
        Eligibility='$grad',Arrears='".$_POST['arr']."',No_of_arrears='".$_POST['Arrno']."',Department='$dept',
            Current_cgpa='".$_POST['cgpa']."',Marks_10th='".$_POST['tenth']."',Marks_12th='".$_POST['twelveth']."',
     Marks_Btech='".$_POST['Btech']."',Emoluments='".$_POST['emoluments']."',Placement_Process='".$_POST['process']."',
            Pldate='".$_POST['dat']."',Pltime='".$_POST['tim']."' where Company_name='".$_POST['company']."')");