gpt4 book ai didi

PHP & MySQL 图像删除问题?

转载 作者:行者123 更新时间:2023-11-29 09:19:30 25 4
gpt4 key购买 nike

我有一个脚本可以删除存储在文件系统上的用户头像图像。此外,图像名称存储在 MySQL 数据库中。

但由于某种原因,脚本删除了所有用户的信息。例如,如果 users_id 为 3,则所有用户信息(如名字、姓氏、年龄等)也会被删除。基本上所有内容都被删除,包括用户。

如何解决此问题,以便仅删除图像和图像名称?

这是代码:

$user_id = '3';

if (isset($_POST['delete_image'])) {
$a = "SELECT * FROM users WHERE avatar = '". $avatar ."' AND user_id = '". $user_id ."'";
$r = mysqli_query ($mysqli, $a) or trigger_error("Query: $a\n<br />MySQL Error: " . mysqli_error($mysqli));
if ($r == TRUE) {
unlink("../members/" . $user_id . "/images/" . $avatar);
unlink("../members/" . $user_id . "/images/thumbs/" . $avatar);

$a = "DELETE FROM users WHERE avatar = '". $avatar ."' AND user_id = '". $user_id ."'";
$r = mysqli_query ($mysqli, $a) or trigger_error("Query: $a\n<br />MySQL Error: " . mysqli_error($mysqli));
}
}

最佳答案

由于avatar是表users的一个属性,您可能只想将avatar属性设置为NULL >。正如您所做的那样,您实际上删除了整行。

因此您应该使用UPDATE操作而不是DELETE:

$a = "UPDATE users SET avatar = NULL WHERE user_id = '". $user_id ."'";

此外,请注意您的代码容易受到 SQL Injection 的攻击。您应该考虑使用 prepared statements .

关于PHP & MySQL 图像删除问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2656811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com