[英]DELETE sql statement in php doesn't work
我在使用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 ='$ pid'
我歡迎任何建議,並先謝謝您。
您是否從URL收到pid。您可以調試代碼以查找問題。 如果您收到pid,則查詢中可能存在問題。
if (mysql_query("DELETE FROM product WHERE product.PID = '$pid'") or die(mysql_error())){....
它將顯示mysql錯誤並退出程序。 您可以使用print_r($ _ POST)打印所有進入頁面的變量。
您的代碼總是總是說成功。
您可以使用mysql_affected_rows()count> = 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>';
}
}
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.