首页 > 解决方案 > 表中的数据不受使用 php 在 MySQL 数据库中的 DELETE 查询的影响

问题描述

我有一张表test,我想删除其中的记录。我正在使用删除查询,但没有效果。我尝试在 SQL 选项卡中运行它,它在phpmyadmin那里工作。但是,在php代码中,它不起作用。这是HTML代码

<form action="home.php" method="post">
  <button class="button button3" type="button" onclick="return 
  toggleMe('del_tst')">Delete Test</button><br>
  <div id="del_tst" style="display:none">
  <input type="date" class="textstyle" name="tst_date" method="post" 
  placeholder="Enter test date" />
  <button type="submit" class="subbutton button1" value="Delete" 
  method="post" 
  name="del_tst">Delete</button><br/>
  </div>
</form>

这是php代码

if(isset($_POST['del_tst'])){
 $tst_date= date('d-m-Y', strtotime( $_POST['tst_date'] ));

try{
    $stmt_tst=$conn->prepare("DELETE FROM `test` WHERE `date`=:tst_date"); 

    $stmt_tst->bindparam(":tst_date",$tst_date);
    $result=$stmt->execute();
    if($result===TRUE)
    {
        if(($stmt->rowCount())>0)
        {
            echo "<font color='white'> <i>record Deleted successfully!</i></font>";
        }
        else{
          echo "<font color='white'> <i>No such record exists!</i></font>";
        }
    }
    else{
        echo "Something Went Wrong!";
    }

    return true; 
}
catch(PDOException $e)
{
 echo $e->getMessage(); 
 return false;
}
}

我正在尝试删除使用条件的记录dateWHERE但不工作。这是数据库的截图 数据库

请和我一起解决这个问题。

标签: phpmysqlsql

解决方案


这部分不正确:

$stmt_tst=$conn->prepare("DELETE FROM `test` WHERE `date`='.$tst_date.'");
$stmt_tst->bindparam(":tst_date",$tst_date);
$result=$stmt->execute();

你应该改变它:

$stmt_tst=$conn->prepare("DELETE FROM `test` WHERE `date`=:tst_date");
$stmt_tst->bindparam(":tst_date",$tst_date);
$result=$stmt->execute();

在文档中查看更多信息。

此外,如果date是 MySQLDATE列,则应使用 ISO8601 日期(年份优先):

$tst_date= date('Y-m-d', strtotime( $_POST['tst_date'] ));

推荐阅读