2017-04-13 2 views
-1

데이터가 데이터베이스에서 삭제되지 않습니다. 추가하고 볼 수 있습니다.데이터베이스에서 데이터베이스를 삭제할 수 없습니다

넣어두면 print_r($submissions); 내 데이터를 볼 수 있습니다. 예 : Array ([0] => 2)$count++;은 if 문 외부에 계산을 넣지 않으면 항상 0으로 표시됩니다. echo "we got an error <br>";은 제출할 제출물이있는 횟수만큼 표시됩니다. 나는 SQL 쿼리를 테스트하고 잘 작동한다. 지금 어디서 이걸 써야할지 모르겠다. 아래에 관련 코드 :

모델 :

function deleteSubmission($conn,$submission_id) 
{ 
    $query = "DELETE FROM submissions WHERE submission_id=:submission_id"; 
    $stmt = $conn->prepare($query); 
     $stmt->bindValue(':submission_id',$submission_id); 
    $affected_rows = $stmt->execute(); 
    if($affected_rows==1) 
    { 
      //echo $affected_rows; 
      echo ($affected_rows) ? "true" : "false"; 
      echo " working "; 
     return true; 
    }else{ 
     //echo $affected_rows; 
      echo ($affected_rows) ? "true" : "false"; 
      echo " not working "; 
      return false; 
    } 
} 

컨트롤러 :

//they didn't submit the form 
if(!isset($_POST["deleteSubmissionsBtn"])) 
{ 
    header("Location:all-submissions-delete.php"); 
    exit; 
} 

$msg; 
//validate 
if(isset($_POST['submissions'])) 
{ 
    $submissions=$_POST['submissions']; 
    $conn=getConn(); 
    $count=0; 
    foreach ($submissions as $submission_id) 
    { 


     if(deleteSubmission($conn,$submission_id)) 
     { 
      $count++; 
     } 
       else{ 
        echo "we got an error <br>"; 
       } 

    } 
     print_r($submissions); 
     //echo $submission_id; 

    $conn=NULL; 
    $msg="Successfully deleted $count submissions"; 
}else{ 
    $msg="You need to select some submissions to delete"; 
} 

include("views/delete-feedback-view.php") 

?> 

보기 :

echo "<form action='delete-submissions.php' method='POST'>"; 
foreach($allSubmissions as $submission) 
{ 
    echo "<div>"; 
    echo "<label>".$submission->title."</label>"; 
    echo "<input type='checkbox' value='".$submission->submission_id."' name='submissions[]'/>"; 
    echo "</div>"; 
} 
echo "<input type='submit' name='deleteSubmissionsBtn' value='delete submissions'>"; 
echo "</form>"; 
+2

쿼리를 실행 한 후 실행 오류가 있으면 확인하십시오. http://stackoverflow.com/questions/3999850/pdo-error-message – tilz0R

+0

또한 도움이되는 오류 메시지가 있으면 오류 로그를 확인하십시오. –

답변

0

감사 tilz0R와 매그너스 에릭손.

나는) (

PDOStatement :: 실행 .... 제안 오류를 확인하고 Array ([0] => 00000 [1] => [2] =>)

내가 PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING 추가 있고 난 내 대답을 찾을 곳이다 : SQLSTATE [42000] 구문 오류 또는 액세스 위반 : 1142 사용자에게 DELETE 명령이 거부되었습니다 ...

이제 문제를 파악하고 해결할 수 있습니다. 다시 한 번 감사드립니다!