使用php

时间:2018-07-04 14:58:25

标签: php mysql sql

我有一个要删除记录的表test。我正在使用删除查询,但没有效果。我尝试在phpmyadmin的“ SQL”选项卡中运行它,并在那里工作。但是,在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;
}
}

我正在尝试在date条件下使用WHERE删除记录,但是不起作用。 这是数据库的屏幕截图 database

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

3 个答案:

答案 0 :(得分:1)

这部分不正确:

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

documentation中查看更多信息。

此外,如果date是MySQL DATE列,则应使用ISO8601日期(以年为单位):

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

答案 1 :(得分:0)

我不确定,但是我会尝试将您的查询更改为:

("DELETE FROM `test` WHERE `date`= '".$tst_date."'");

请注意$ tst_date左右的多余双引号

答案 2 :(得分:0)

您应该修复表格:

<form name="myForm" action="home.php" method="post">
  <input type="date" class="textstyle" name="tst_date" placeholder="Enter test date" />
  <input type="submit" class="subbutton button1" value="Delete" name="del_tst">Delete</button><br/>
  </form>

尝试使用此简易版本,该版本应将值发布到PHP页面。然后使用您的浏览器检查工具查看其发布是否正确

这与@bart的答案一起使用