php中的SQL代码不删除记录

php中的SQL代码不删除记录,php,mysql,sql,database,sql-delete,Php,Mysql,Sql,Database,Sql Delete,第一: 是的,mysqli很棒,我不能用它来做这个 现在: 我编写了一个代码,一旦调用,应该删除一个特定的记录,它执行,没有错误,甚至输出消息,但它不删除记录 为什么??我怎样才能解决这个问题 到目前为止,我没有发现任何错误: 试试这个您在查询中遗漏了一个报价 $sql = "DELETE FROM Kittenzz WHERE KittenID='$_POST[KittenID]"; 请试试这个: $sql = "DELETE FROM Kittenzz

第一: 是的,mysqli很棒,我不能用它来做这个

现在: 我编写了一个代码,一旦调用,应该删除一个特定的记录,它执行,没有错误,甚至输出消息,但它不删除记录

为什么??我怎样才能解决这个问题

到目前为止,我没有发现任何错误:


试试这个

您在查询中遗漏了一个报价

 $sql = "DELETE FROM Kittenzz
         WHERE KittenID='$_POST[KittenID]";
请试试这个:

 $sql = "DELETE FROM Kittenzz
         WHERE KittenID='".$_POST['KittenID']."';";

我认为您错过了deletesql结尾的结束语。您也没有连接$_POST[KittenID]变量,只是将其粘贴在字符串的末尾。因此:

$sql = "DELETE FROM Kittenzz
                    WHERE KittenID='$_POST[KittenID]";
变成:

 $sql = "DELETE FROM Kittenzz
                    WHERE KittenID='" . $_POST[KittenID]. "'";

您的代码中有错误:

首先要改变这一点:

if ($_POST[KittenID]=='')
为此:

if ($_POST['KittenID']=='')
$sql = "DELETE FROM Kittenzz WHERE KittenID='" . $_POST['KittenID'] . "'";
这是:

$sql = "DELETE FROM Kittenzz WHERE KittenID='$_POST[KittenID]";
为此:

if ($_POST['KittenID']=='')
$sql = "DELETE FROM Kittenzz WHERE KittenID='" . $_POST['KittenID'] . "'";

其他人都说了些什么,但你的巢穴已经关闭了。例如,以下嵌套不正确:

else
    { //exeption else       
        { //main else
您不能在那里启动“main”——整个异常被包装在main中,或者main不存在

删除“main”的起始和结束括号,或在其前面放一条语句


根据评论,显然这在PHP中被接受/忽略。因此,请将我的“不能”替换为“可能不应该,因为它看起来很奇怪,没有任何作用”。

您的查询似乎缺少结束字符\'

你的:

 "DELETE FROM Kittenzz WHERE KittenID='$_POST[KittenID] ";
应该是:

 "DELETE FROM Kittenzz WHERE KittenID='$_POST[KittenID]' ";
顺便说一句:@vivek代码更优雅


干杯

请停止使用不推荐的
mysql
API。请看一下
mysqli
PDO
。如果您仍然希望继续使用不推荐的api,出于对某些东西的热爱,请清理您的用户输入。您的脚本对SQL注入开放!教授想要mysql,我该怎么办?不,如果有的话,你应该问你的教授为什么他推荐了一个坏的和不推荐的API。你确定他是在追求api而不是数据库吗?如果你的教授真的强迫你使用不推荐的mysql api,那么是的,不及格,选择另一所学校。因为你的教授不知道他在教什么。尽管如此,如果你要使用它,请确保你的输入正确转义。他特别告诉全班只使用mysql。非常感谢你,只是一个问题,当我稍后尝试查找记录时,我发现它没有值,但我发现它。我能让它看起来好像从未添加过记录吗?@user3541786:抱歉,我没有听到你的“这个”问题:没关系,我的查找方法被破坏了,我以为它正在查找已删除的记录。这里面有一个惊人的SQL注入漏洞-我们试图鼓励海报发布安全代码,或者至少让大家注意这个问题。谢谢你的建议。这些只是我的心理笔记,凌晨3:30很难集中注意力,我必须在上课前完成。我不在乎笔记-括号“{”不合适:)括号作用域不会使代码不运行,但它们是多余的。在许多语言中,作用域会创建上下文,但在php中,这并不重要。@Jite我不知道这一点。也许这不是最有效的答案,但对我来说确实很奇怪。我仍然认为你的答案有道理,正如你指出的那样t该子句与
else
无关。它只是一个匿名作用域,在php中非常无用。是的,它看起来确实很奇怪。:)