首页 > 解决方案 > 使用 $_GET 参数删除 MySQL 数据库的行

问题描述

所以我有一个名为recept_felhasznalok_pending 的表,它有四列,其中一列是电子邮件。我希望能够使用我可以发送给任何人的链接从表中删除一行。我在deny.php 中有以下PHP 代码:

<?php
include('database.php');

///////////////////////////////////

function azonositott_e() {
    return ($_SESSION["email"] === "This is the email address of the person I want to be able to use the link.");
}    
session_start();
if (!azonositott_e()) {
    header("Location: login.php");
    exit();
}

function db($kapcsolat, $email) {
    $torol = vegrehajtas($kapcsolat,
        "DELETE FROM `recept_felhasznalok_pending` WHERE `email` = :email",
        [ ":email" => $email ]
    );
}

if ($_GET['email']) {
    db($kapcsolat, $_GET['email']);
    header("Location: index.php");
    exit();
}
?>

database.php 文件包含连接和执行部分代码:

<?php
function kapcsolodas($kapcsolati_szoveg, $felhasznalonev = '', $jelszo = '') {
  $pdo = new PDO($kapcsolati_szoveg, $felhasznalonev, $jelszo);
  $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  return $pdo;
}

function lekerdezes($kapcsolat, $sql, $parameterek = []) {
  $stmt = $kapcsolat->prepare($sql);
  $stmt->execute($parameterek);
  return $stmt->fetchAll();
}

function vegrehajtas($kapcsolat, $sql, $parameterek = []) {
  return $kapcsolat
    ->prepare($sql)
    ->execute($parameterek);
}

$kapcsolat = kapcsolodas(
  'mysql:host=*********;dbname=************;charset=utf8',
  '********', '***********');
?>

当我打开 domain.com/deny.php?email=example@example.com(登录)时,应该从表中删除该行,但它没有,我只是被重定向到 index.php。我究竟做错了什么?

编辑:database.php 没有错误,因为它在我项目的其他任何地方都可以使用。另外,我没有收到任何错误消息。

标签: phpmysqlsqlget

解决方案


推荐阅读