gpt4 book ai didi

php - MySQL 删除查询不起作用

转载 作者:行者123 更新时间:2023-11-30 00:13:27 25 4
gpt4 key购买 nike

我使用 GET 方法将值发送到 PHP 表单。当我转到 URL 时,链接如下所示:

http://www.url.com/getstuff.php?rid=sG94Ok5JtHQ&searcht=music&r=0

我使用以下函数来处理变量:

if (isset($_GET['rid'])) {

if($_GET['r'] == 0) {
echo $_GET['searcht'];
echo $_GET['rid'];
mysql_query('DELETE FROM flags WHERE searchText = "'.$_GET['searcht'].'" AND videoID = "'.$rid.'"');
} else
{
mysql_query('INSERT INTO removed (videoID) VALUES ("'.$_GET['rid'].'")');
mysql_query('DELETE FROM flags WHERE searchText = "'.$_GET['searcht'].'" AND videoID = "'.$rid.'"');
}
}

出于某种原因,INSERT 语句在上面有效,但 delete 语句不执行任何操作。当我 echo mysql_error() 时,我也没有得到任何东西。我确信列和表名称是正确的。任何帮助我让删除语句正常工作的帮助将不胜感激!谢谢!

最佳答案

即使没有删除任何内容,DELETE 查询也会成功。在您的代码中,您使用 $rid 变量,该变量从未设置。 一个 $_GET['rid'] 变量,因此解决方法可能是将 $rid 分配给 $_GET[ 'rid'],例如

{
$rid = $_GET['rid'];
mysql_query('INSERT INTO removed (videoID) VALUES ("'.$_GET['rid'].'")');
mysql_query('DELETE FROM flags WHERE searchText = "'.$_GET['searcht'].'" AND videoID = "'.$rid.'"');
}

或者将 $rid 的所有实例更改为 $_GET['rid'],例如

{
mysql_query('INSERT INTO removed (videoID) VALUES ("'.$_GET['rid'].'")');
mysql_query('DELETE FROM flags WHERE searchText = "'.$_GET['searcht'].'" AND videoID = "'.$_GET['rid'].'"');
}

此外,mysql_ 函数已被弃用,您应该使用 PDO/mysqli。此外,您不会在任何地方清理数据(使用 intvalmysql_real_escape_string 或类似方法),因此您对 SQL 注入(inject)非常开放。

关于php - MySQL 删除查询不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23860059/

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