SQL php 中的代码未删除记录

SQL code in php not deleting record

首先: 是的,mysqli 很棒,我不能用它来做这个。

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

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

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

<?php
if(isset($_POST['Delete']))
{ 
 $connection = mysql_connect("Deleted login info");

 // Check connection
 if (!$connection)
 {
 //echo "Connection failed: " . mysql_connect_error();
 }   
 else
 { 
   //select a database
   $dbName="Katz";
   $db_selected = mysql_select_db($dbName, $connection); 
        
   //confirm connection to database
   if (!$db_selected)
   {
     die ('Can\'t use $dbName : ' . mysql_error());
   }   
   else if ($_POST[KittenID]=='')
   { 
  $OutputMessage = 'Must add a Kitten-ID';
   }      
   else
   {//exeption else  
     {//main else
        $sql = "DELETE FROM Kittenzz WHERE KittenID='$_POST[KittenID]";

        $retval = mysql_query($sql, $connection);
        if(!$retval )
        {
   $OutputMessage = 'RECORD DOES NOT ALLOW DELETION';
        }
        $OutputMessage = 'RECORD DELETED';
    
        mysql_close($connection);            
   }//main else
    }//exception else
  } 

  mysql_close($connection);
}
   
?>

我可以从某人那里换个新造型吗?

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

试试这个

您在查询中遗漏了一个单引号。

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

请试试这个:

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

我认为您在删除 sql 末尾缺少结束符 '。您也没有连接 $_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'] . "'";

其他人所说的,还有 - 您的嵌套已关闭。例如,下面的嵌套是不正确的:

else
    { //exeption else       
        { //main else

你不能在那里启动 "main" - 整个异常都包含在 main 中,或者 main 不存在。

要么删除 "main" 的开始和结束括号,要么在它之前添加一个语句。

根据评论,显然这是 PHP 中的 accepted/ignored。所以将我的 "can't" 替换为 "probably shouldn't, because it looks odd and serves no purpose".

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

你的:

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

应该是:

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

顺便说一句:@vivek 代码更优雅。

干杯