php中的mysqlupdate命令不起作用


mysql update command in php not working

这是我使用的代码。这里我使用一个表单来获取数据并更新数据库。请告诉我错误是什么。我正在使用wamp服务器。

 $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);

请告诉我更新代码出了什么问题。。。。。。。。。。。。。。。。。

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

更改每个变量,如下所示,您缺少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_不会自动保护您的查询。使用绑定参数

   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']."')");