php中的SQL代码没有删除记录

时间:2015-03-24 07:13:51

标签: php mysql sql database sql-delete

第一: 是的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);
}
			
?>

我可以从别人那里看一眼吗?

6 个答案:

答案 0 :(得分:2)

其他人说了什么,但是 - 你的筑巢是关闭的。例如,以下嵌套不正确:

else
    { //exeption else       
        { //main else

你无法启动&#34; main&#34;那里 - 整个例外都包含在主要内容中,或者主要不存在。

删除&#34; main&#34;的开始和结束括号,或在其前面添加一个声明。

根据评论,显然这在PHP中被接受/忽略。所以,替换我的&#34; can&#t; t&#34;与#34;可能不应该,因为它看起来很奇怪而没有任何用处&#34;。

答案 1 :(得分:0)

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

试试这个

答案 2 :(得分:0)

您在查询中错过了一个单引号。

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

请试试这个:

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

答案 3 :(得分:0)

我认为你错过了删除sql末尾的结束。您也没有连接$ _POST [KittenID]变量,只是将其粘贴在字符串的末尾。所以:

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

变为:

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

答案 4 :(得分:0)

您的代码中存在错误:

首先改变这个:

if ($_POST[KittenID]=='')

到此:

if ($_POST['KittenID']=='')

和此:

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

到此:

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

答案 5 :(得分:0)

您的查询似乎缺少关闭字符\'。

你的:

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

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

BTW:@vivek代码更优雅。

干杯