我已经制作了一个删除按钮,我希望无论什么时候按下它都会删除一个“预订”按钮。在我的数据库中。这是我的代码:
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' ");}
?>
答案 0 :(得分:2)
SQL使用单引号('
)来表示您当前缺少的字符串文字:
$delete = mysql_query("DELETE FROM reserveringen WHERE Email = '$email'");
编辑:
强制警告:
mysql_query
is deprecated,请考虑使用mysqli或PDO。答案 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();
}