我在使用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;
我欢迎任何建议,并提前感谢你。
答案 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>';
}
}
?>