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 代码更优雅。
干杯
首先: 是的,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 代码更优雅。
干杯