繁体   English   中英

无法使用php从数据库mysql中删除整行

[英]Not able to delete an entire row from a database mysql using php

在此处输入图片说明

我正在尝试从数据库中删除整行,该行具有名为“ students”的表,当我运行删除查询时它包括四列,它仅删除两列数据RegNo和Name。 可能是什么原因?

 $names = [
       ['reg'=> $_POST['s1_id'], 'reg_set'=> $_POST['s1_id_set'] ,'name'=> $_POST['s1_name']],
       ['reg'=> $_POST['s2_id'], 'reg_set'=> $_POST['s2_id_set'],'name'=> $_POST['s2_name']], 
       ['reg'=> $_POST['s3_id'], 'reg_set'=> $_POST['s3_id_set'],'name'=> $_POST['s3_name']]
       ]; 




  $query_delete="delete from students where RegNo=:reg And ProjectID='$id'";

  $query_update="update students SET Name=:Name, RegNo=:reg_set WHERE 
  RegNo=:reg And ProjectID='$id'";

  foreach ( $names as $name)
  {
    try
   {

    if(!isset($name['reg_set']) && !isset($name['name']) )
    {

            $stmt = $conn->prepare( $query_delete );
            $stmt->bindParam(':Name', $name['name']);
            $stmt->bindParam(':reg', $name['reg']);

            $result = $stmt->execute();
            $msg = "Record deleted";

    }
    else
    {
      $stmt = $conn->prepare( $query_update );  
      $stmt->bindParam(':Name', $name['name']);
      $stmt->bindParam(':reg', $name['reg']);
      $stmt->bindParam(':reg_set', $name['reg_set']);
      $result = $stmt->execute();
      $msg = "Record updated";
    }
    //header("location:adminhome.php");
  }

  catch(PDOException $ex)
  {
      $msg = $ex -> getMessage();
  }
 }

您的逻辑没有道理。 您检查是否设置了名称和reg,然后即使没有设置名称,也尝试在数据库查询中使用它们。 从结果看来,您似乎试图用空数据或空数据更新该行,这就是为什么它们为空而不被删除的原因。

请显示$msg是什么,然后重做您的逻辑。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM