2014-11-23 4 views
0

PHP에서 SQL 쿼리를 사용하여 데이터베이스의 행을 삭제할 때 문제가 발생했습니다. 내 코드가 잘못되었는지, 내 코드를 다시 팩할 때 많은 노력을했습니다. 시간이하지만 난 여전히 내 SQL 코드 여기PHP에서 DELETE 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, 모든 시간 FALSE 될 수있는 문 mysql_query("DELETE FROM product WHERE product.PID = '$pid'") 턴 아웃을 실행하면 제품이있는 행이있는 경우 .PID = '$ pid'

사전에 조언을 부탁드립니다.

+0

아마'시도 product.PID = '$의 PID'LIMIT 1 ' – Rizier123

+1

는 mysql_query 확장이 PHP 5.5.0 추천되지 않습니다 제품 * FROM DELETE, 미래에서 제거 될 예정입니다. 대신 MySQLi 또는 PDO_MySQL 확장을 사용해야합니다. –

+0

데이터베이스 친구를 선택하는 동안 오류가 있는지 확인하십시오. 오류의 원천이 될 수도 있습니다 –

답변

0

URL에서 pid를 수신하고 있습니까? 코드를 디버그하여 문제를 찾을 수 있습니다. pid를받는 경우 쿼리에 문제가있을 수 있습니다.

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

그러면 mysql 오류가 출력되고 프로그램이 종료됩니다. print_r ($ _ POST)를 사용하여 페이지에 오는 모든 포스트 변수를 인쇄 할 수 있습니다.

+0

대단히 고맙습니다. 문제는 코드가 아닙니다. 내 데이터베이스의 'product'테이블 및 기타 관련 테이블은 기본적으로 NO ACTION을 삭제하도록 설정됩니다. – pandaDev

0

코드에는 단순히 sucess alway라고 표시되어 있습니다.

삭제 확인은 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>'; 
    } 
} 
?> 
관련 문제