我正在使用PHP
方法将值发送到GET
表单。当我转到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语句正常工作!谢谢! 最佳答案
即使没有删除任何内容,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。另外,您不会在任何地方清理数据(使用intval
或mysql_real_escape_string
或类似方法),因此您很愿意接受SQL注入。关于php - MySQL删除查询不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23860059/