php中的DELETE sql语句不起作用

时间:2014-11-23 09:59:05

标签: php mysql sql-delete

我在使用PHP中的SQL查询删除数据库中的行时出现问题,我试图找出我的代码是否错误,并且我已尝试多次重新分解我的代码,但我仍然有我的 SQL代码

的问题

这是我的代码

<?php
if(isset($_POST['del'])){
    $cn = @mysql_connect("localhost", "root", "");
    if(!$cn){
        echo "Cannot connect to MySQL server<br>";
        exit;
    }
    mysql_select_db("Logistic");
    $pid = (int)$_POST['pid'];
    if (mysql_query("DELETE FROM product WHERE product.PID = '$pid'")){
        mysql_close($cn);
        echo '<script type="text/javascript">
                alert("Delete product ID:' . $pid . ' successfully");
                history.go(-1);
              </script>';
    } else {
        mysql_close($cn);
        echo '<script type="text/javascript">
                alert("Delete product ID:' . $pid . ' error");
                history.go(-1);
              </script>';
    }
}
?>

当我运行这个PHP时,语句  mysql_query("DELETE FROM product WHERE product.PID = '$pid'") 始终为FALSE ,即使有一行有product.PID =&#39; $ pid&#39;

我欢迎任何建议,并提前感谢你。

2 个答案:

答案 0 :(得分:0)

您是否从URL接收pid。您可以调试代码以查找问题。 如果您正在接收pid,那么查询中可能存在问题。

if (mysql_query("DELETE FROM product WHERE product.PID = '$pid'") or die(mysql_error())){....

它将打印mysql错误并退出程序。 您可以使用print_r($ _ POST)打印进入页面的所有帖子变量。

答案 1 :(得分:0)

你的代码总是说成功。

您可以使用mysql_affected_rows()count&gt; = 1进行删除检查。

工作代码。

    <html>
<form method="POST">
<input type="text" name ="pidpid" />
<input type="submit" name ="del" id="del" value="Delete"/>

</form>
</html>

<?php


if(isset($_POST['del'])){
echo "1";
    $cn = @mysql_connect("localhost", "root", "");
    if(!$cn){
        echo "Cannot connect to MySQL server<br>";
        exit;
    }
    mysql_select_db("Logistic");
    $pid = (int)$_POST['pidpid'];

    $str="DELETE FROM product WHERE product.PID = '$pid'";
    echo $str;
    mysql_query($str);
    $delChk=mysql_affected_rows();
    echo $delChk;

    if ($delChk>=1){
        mysql_close($cn);
        echo '<script type="text/javascript">
                alert("Delete product ID:' . $pid . ' successfully");
                history.go(-1);
              </script>';
    } else {
        mysql_close($cn);
        echo '<script type="text/javascript">
                alert("Delete product ID:' . $pid . ' error");
                history.go(-1);
              </script>';
    }
}
?>