php - 使用 $_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 没有错误,因为它在我项目的其他任何地方都可以使用。另外,我没有收到任何错误消息。
解决方案
推荐阅读
- multithreading - smt 模式下的多线程程序只运行一个线程 gem5
- python - 带暂停的函数循环
- python - Internet Explorer 11 - Cookie 不保存通过的会话
- c# - 使用 ASP.net 核心应用程序访问受保护的目录
- javascript - 有没有一种安全的方法来防止 exec 剥离引号?
- python - tkinter python中的标签是否有任何命令属性?
- c++ - 如何将 SSAO 应用于天空盒?
- javascript - 如何在 Angular Firebase 中修复浏览器刷新时的“TypeError:无法读取属性 'getIdToken' of null”?
- sql - 稍微修改SQL给我带来:ORA-01427:单行子查询返回多于一行
- python - concurrent.futures ThreadPoolExecutor - 线程数不匹配