PHP中的删除按钮不起作用

时间:2015-01-24 17:25:29

标签: php mysql

我已经制作了一个删除按钮,我希望无论什么时候按下它都会删除一个“预订”按钮。在我的数据库中。这是我的代码:

require_once"database.php";
if(isset($_POST["verwijderen"])) {
    $email = ($_SESSION["userId"]);
    $delete = mysql_query("DELETE FROM reserveringen WHERE Email = $email ");
}

verwijderen是我的删除按钮的名称。 $email向我提供了登录人员的电子邮件,$delete是查询。 reserveringen是我的表名,email是colomn的名称。我试过这个但是它没有用。 $email确实向我提供了登录人的电子邮件(我已使用echo($email)进行了检查。)

编辑: 完整代码:

<?php
session_start();

$loggedIn = "";
if (isset($_SESSION["loggedIn"])) {
    $loggedIn = $_SESSION["loggedIn"];
} else {
    header('Location:reserveringssysteeminloggen.php');
}
$email = ($_SESSION["userId"]);


require_once"database.php";
if(isset($_POST["verwijderen"])) {
    $email = ($_SESSION["userId"]);
    $result = $mysql_query("DELETE FROM reserveringen WHERE Email = '$email' ");}

?>

3 个答案:

答案 0 :(得分:2)

SQL使用单引号(')来表示您当前缺少的字符串文字:

$delete = mysql_query("DELETE FROM reserveringen WHERE Email = '$email'");

编辑:
强制警告:

  1. mysql_query is deprecated,请考虑使用mysqli或PDO。
  2. 此方法容易受到SQL注入攻击。考虑使用准备好的声明。

答案 1 :(得分:1)

在$ email附近添加引号,如:

$delete = mysql_query("DELETE FROM reserveringen WHERE Email = '$email' ");

请注意:您的查询容易受到SQL注入攻击。您可以考虑使用prepared语句。

答案 2 :(得分:1)

首先,不要使用mysql_query,不推荐使用它。 PDO::Mysql是要使用的新标准,因为prepare语句(和bindParam)使用它也更安全。这将保护您免受SQL注入。它还会自动将您的字符串正确放入sql-query。

$pdo = new PDO('mysql:host=localhost;dbname=DATABASENAME', "USERNAME", "PASSWORD");
if(isset($_POST["verwijderen"])){    
    $sql = "DELETE FROM reserveringen WHERE Email = :email";
    $stmt = $pdo->prepare($sql);
    $stmt->bindParam(':email', $email, PDO::PARAM_STR);   
    $stmt->execute();
}