1

我正在使用 php 从 mysql 数据库中的表中删除一行,但它不起作用。我什至不想做任何花哨的事情,只是删除一行。这是代码:

mysql_query("DELETE FROM feed WHERE feed = '$feed'") or die("Query failed! with '$feed'");

这只是行不通,而这样做

mysql_query("DELETE FROM feed WHERE feed = 'hello'") or die("Query failed! with '$feed'");

请帮我...

完整代码(基于下面的评论):

$feed = $_POST['feed'];
$date = $_POST['date'];
$time = $_POST['time'];
echo $feed;
echo $date;
echo $time;
//$r = mysql_query("DELETE FROM feed WHERE date = '$date' AND time = '$time'") or die("Query failed! with '$feed'");
$r = mysql_query ("DELETE FROM feed WHERE feed = '" . mysql_real_escape_string ($feed) . "'") or die ("Query failed with {$feed} and mysql error: " . mysql_error); )
4

3 回答 3

1

出于调试目的,请打印mysql_error以更好地了解导致错误的原因。

我的猜测是您$feed可能包含单引号。解决这个问题mysql_real_escape_string

mysql_query ("DELETE FROM feed WHERE feed = '" . mysql_real_escape_string ($feed) . "'") or
die ("Query failed with {$feed} and mysql error: " . mysql_error());

附带说明一下,不推荐使用 mysql 扩展,因此您可能需要考虑 mysqli 或 PDO。

于 2013-08-16T03:28:39.660 回答
0

试试这个......在你的 $feed 变量周围添加花括号

mysql_query("DELETE FROM feed WHERE feed = '{$feed}'")
于 2013-08-16T03:10:34.980 回答
0

当您说 varchar 时,这是一个包含 URL 的相当长的字符串吗?

如果字符串包含任何反斜杠,这些将被解释为转义字符。此外,您永远不应该直接从 POST 变量运行 sql 查询,而不使用 mysql_real_escape_string() 清理它。

还要确保 $feed var 没有任何带有 trim($feed); 的尾随空格。

于 2013-08-16T04:50:05.330 回答