PHP中的删除按钮不起作用

时间:2015-05-14 03:32:07

标签: php html mysqli

我正在尝试在我的网站上添加一个php按钮,但它似乎无法正常工作。

删除php脚本是;

if(isset($_POST["delete"])) { 

   $delquery = "DELETE FROM emails WHERE ID=$_POST["delete"]"; 
   mysqli_query($connection, $delquery);

}

表单看起来像是在同一个文件中;

<form action="email-response.php" method="post">
  <input type="hidden" name="hidden" value="<?php echo $row['ID']; ?>">
  <input type="submit" name="delete" value="delete">
</form> 

然而,每当我点击删除按钮时,都没有发生任何事情。

关于回复说我的$ connection函数是错误的,这是函数,但它正在工作,因为它是为我的帖子获取我的信息。

define("DB_SERVER", "myservername");
define("DB_USER", "myusername"); //username
define("DB_PASS", "mypassword"); //password
define("DB_NAME", "mydbname"); // database name

$connection = mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME);

if(mysqli_connect_errno()) {
    die("Database connection failed: " .
        mysqli_connect_error() .
        " (" . mysqli_connect_errno() . ")"
    );
} else {
    echo "connected";
}

2 个答案:

答案 0 :(得分:3)

您要删除的元素名为hidden,而不是delete

  • 这就是您的提交按钮被命名为(删除)。

将您的查询更改为:

if(isset($_POST["delete"]) && !empty($_POST["hidden"])){
   $id = mysqli_real_escape_string($connection, $_POST["hidden"]);
}

$delquery = "DELETE FROM emails WHERE ID='$id'"; 
mysqli_query($connection, $delquery) or die(mysqli_error($connection));

if(mysqli_affected_rows($connection)){
  echo "It was really successful.";
}
  • isset($_POST["delete"])用于检查是否点击了提交按钮。

  • 使用mysqli_affected_rows()会显示您的查询是否真的成功 这是我经常使用的功能。

error reporting添加到文件的顶部,这有助于查找错误。

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// rest of your code

旁注:错误报告应仅在暂存时完成,而不是生产。

旁注:使用您现有的方法,让您对SQL injection开放。

使用mysqli with prepared statementsPDO with prepared statements它们更安全

答案 1 :(得分:1)

你的联系很好。

这是一个有效且简单的解决方案:

您的表格:

<form action="#" method="post">
<input type="hidden" name="to_delete" value="<?php echo $row['ID']; ?>">
<input type="submit" name="delete" value="delete">
</form>

您的删除脚本:

 if(isset($_POST["delete"]))
{ 
 $delquery = "DELETE FROM user WHERE ID=".$_POST['to_delete'].""; 
 mysqli_query($connection, $delquery);
}