2016-07-18 2 views
1

최근에 데이터베이스를 업데이트하기 위해 PHP 파일을 만들었습니다. 안드로이드 앱의 StringRequest에서이 파일을 사용합니다. 오류 코드 500은 서버 오류입니다. 내 문제는 코드의 문제점을 파악할 수 없다는 것입니다. 누군가가 나에게 무슨 일이 일어나는지 이해하도록 도와 줄 수 있습니까?PHP 코드가 오류 코드 500을 반환합니다. 무엇이 잘못 되었나요?

내 코드 :

<?php 

    $username = $_POST["username"]; 
    $location = $_POST["location"]; 
    $lastDayName = $_POST["lastDayName"]; 

    $response = array(); 
    $response["success"] = false; 

    $con = mysqli_connect("website.com", "username", "password", "dbname"); 

    switch($location) { 
     case "1": 
      $update_statement = mysqli_prepare($con, "UPDATE location SET lastDayName1=? WHERE username=?"); 
      mysqli_stmt_bind_param($update_statement, "ss", $lastDayName, $username); 
      mysqli_stmt_execute($update_statement); 
      mysqli_stmt_close($update_statement); 

      $update_statement = mysqli_prepare($con, "UPDATE location SET lastDayName2=? WHERE username=?"); 
      mysqli_stmt_bind_param($update_statement, "ss", "", $username); 
      mysqli_stmt_execute($update_statement); 
      mysqli_stmt_close($update_statement); 
      $response["success"] = true; 
      break; 
     case "2": 
      $update_statement = mysqli_prepare($con, "UPDATE location SET lastDayName2=? WHERE username=?"); 
      mysqli_stmt_bind_param($update_statement, "ss", $lastDayName, $username); 
      mysqli_stmt_execute($update_statement); 
      mysqli_stmt_close($update_statement); 

      $update_statement = mysqli_prepare($con, "UPDATE location SET lastDayName3=? WHERE username=?"); 
      mysqli_stmt_bind_param($update_statement, "ss", "", $username); 
      mysqli_stmt_execute($update_statement); 
      mysqli_stmt_close($update_statement); 
      $response["success"] = true; 
      break; 
     case "3": 
      $update_statement = mysqli_prepare($con, "UPDATE location SET lastDayName3=? WHERE username=?"); 
      mysqli_stmt_bind_param($update_statement, "ss", $lastDayName, $username); 
      mysqli_stmt_execute($update_statement); 
      mysqli_stmt_close($update_statement); 

      $update_statement = mysqli_prepare($con, "UPDATE location SET lastDayName4=? WHERE username=?"); 
      mysqli_stmt_bind_param($update_statement, "ss", "", $username); 
      mysqli_stmt_execute($update_statement); 
      mysqli_stmt_close($update_statement); 
      $response["success"] = true; 
      break; 
     case "4": 
      $update_statement = mysqli_prepare($con, "UPDATE location SET lastDayName4=? WHERE username=?"); 
      mysqli_stmt_bind_param($update_statement, "ss", $lastDayName, $username); 
      mysqli_stmt_execute($update_statement); 
      mysqli_stmt_close($update_statement); 

      $update_statement = mysqli_prepare($con, "UPDATE location SET lastDayName5=? WHERE username=?"); 
      mysqli_stmt_bind_param($update_statement, "ss", "", $username); 
      mysqli_stmt_execute($update_statement); 
      mysqli_stmt_close($update_statement); 
      $response["success"] = true; 
      break; 
     case "5": 
      $update_statement = mysqli_prepare($con, "UPDATE location SET lastDayName5=? WHERE username=?"); 
      mysqli_stmt_bind_param($update_statement, "ss", $lastDayName, $username); 
      mysqli_stmt_execute($update_statement); 
      mysqli_stmt_close($update_statement); 

      $update_statement = mysqli_prepare($con, "UPDATE location SET lastDayName6=? WHERE username=?"); 
      mysqli_stmt_bind_param($update_statement, "ss", "", $username); 
      mysqli_stmt_execute($update_statement); 
      mysqli_stmt_close($update_statement); 
      $response["success"] = true; 
      break; 
     case "6": 
      $update_statement = mysqli_prepare($con, "UPDATE location SET lastDayName6=? WHERE username=?"); 
      mysqli_stmt_bind_param($update_statement, "ss", $lastDayName, $username); 
      mysqli_stmt_execute($update_statement); 
      mysqli_stmt_close($update_statement); 

      $update_statement = mysqli_prepare($con, "UPDATE location SET lastDayName7=? WHERE username=?"); 
      mysqli_stmt_bind_param($update_statement, "ss", "", $username); 
      mysqli_stmt_execute($update_statement); 
      mysqli_stmt_close($update_statement); 
      $response["success"] = true; 
      break; 
     case "7": /* I don't think this one will be used because it is the last location anyway */ 
      $update_statement = mysqli_prepare($con, "UPDATE location SET lastDayName7=? WHERE username=?"); 
      mysqli_stmt_bind_param($update_statement, "ss", $lastDayName, $username); 
      mysqli_stmt_execute($update_statement); 
      mysqli_stmt_close($update_statement); 
      $response["success"] = true; 
      break; 
     default: 
      $response["success"] = false; 
      break; 
    } 

    $con = null; 
    echo json_encode($response); 
?> 
+0

확인 아파치 오류는/var/log/아파치/error.log''에서 관련 오류 메시지/s를 게시하십시오. – razzak

+0

웹 사이트는 다른 웹 사이트에서 호스팅되며 아파치를 사용하는 경우에도이 파일에 액세스 할 수 없습니다. – TheAnonymous010

+0

브라우저에서 스크립트로 이동하면 오류 메시지가 표시됩니까? 그렇지 않다면,'ini_set ('display_errors', 1); error_reporting (E_ALL);ini_set ('display_startup_errors', 1);'이를 가져 와서 게시물에 추가하면 스크립트에 어떤 문제가 있는지 알 수 있습니다. – T3KBAU5

답변

1

이 시도 :

<?php 

    $username = $_POST["username"]; 
    $location = $_POST["location"]; 
    $lastDayName = $_POST["lastDayName"]; 

    $response = array(); 
    $response["success"] = false; 

    $con = mysqli_connect("website.com", "username", "password", "dbname"); 

    $null_value = ""; 

    switch($location) { 
     case "1": 
      $update_statement = mysqli_prepare($con, "UPDATE location SET lastDayName1=? WHERE username=?"); 
      mysqli_stmt_bind_param($update_statement, "ss", $lastDayName, $username); 
      mysqli_stmt_execute($update_statement); 
      mysqli_stmt_close($update_statement); 

      $update_statement = mysqli_prepare($con, "UPDATE location SET lastDayName2=? WHERE username=?"); 
      mysqli_stmt_bind_param($update_statement, "ss", $null_value, $username); 
      mysqli_stmt_execute($update_statement); 
      mysqli_stmt_close($update_statement); 
      $response["success"] = true; 
      break; 
     case "2": 
      $update_statement = mysqli_prepare($con, "UPDATE location SET lastDayName2=? WHERE username=?"); 
      mysqli_stmt_bind_param($update_statement, "ss", $lastDayName, $username); 
      mysqli_stmt_execute($update_statement); 
      mysqli_stmt_close($update_statement); 

      $update_statement = mysqli_prepare($con, "UPDATE location SET lastDayName3=? WHERE username=?"); 
      mysqli_stmt_bind_param($update_statement, "ss", $null_value, $username); 
      mysqli_stmt_execute($update_statement); 
      mysqli_stmt_close($update_statement); 
      $response["success"] = true; 
      break; 
     case "3": 
      $update_statement = mysqli_prepare($con, "UPDATE location SET lastDayName3=? WHERE username=?"); 
      mysqli_stmt_bind_param($update_statement, "ss", $lastDayName, $username); 
      mysqli_stmt_execute($update_statement); 
      mysqli_stmt_close($update_statement); 

      $update_statement = mysqli_prepare($con, "UPDATE location SET lastDayName4=? WHERE username=?"); 
      mysqli_stmt_bind_param($update_statement, "ss", $null_value, $username); 
      mysqli_stmt_execute($update_statement); 
      mysqli_stmt_close($update_statement); 
      $response["success"] = true; 
      break; 
     case "4": 
      $update_statement = mysqli_prepare($con, "UPDATE location SET lastDayName4=? WHERE username=?"); 
      mysqli_stmt_bind_param($update_statement, "ss", $lastDayName, $username); 
      mysqli_stmt_execute($update_statement); 
      mysqli_stmt_close($update_statement); 

      $update_statement = mysqli_prepare($con, "UPDATE location SET lastDayName5=? WHERE username=?"); 
      mysqli_stmt_bind_param($update_statement, "ss", $null_value, $username); 
      mysqli_stmt_execute($update_statement); 
      mysqli_stmt_close($update_statement); 
      $response["success"] = true; 
      break; 
     case "5": 
      $update_statement = mysqli_prepare($con, "UPDATE location SET lastDayName5=? WHERE username=?"); 
      mysqli_stmt_bind_param($update_statement, "ss", $lastDayName, $username); 
      mysqli_stmt_execute($update_statement); 
      mysqli_stmt_close($update_statement); 

      $update_statement = mysqli_prepare($con, "UPDATE location SET lastDayName6=? WHERE username=?"); 
      mysqli_stmt_bind_param($update_statement, "ss", $null_value, $username); 
      mysqli_stmt_execute($update_statement); 
      mysqli_stmt_close($update_statement); 
      $response["success"] = true; 
      break; 
     case "6": 
      $update_statement = mysqli_prepare($con, "UPDATE location SET lastDayName6=? WHERE username=?"); 
      mysqli_stmt_bind_param($update_statement, "ss", $lastDayName, $username); 
      mysqli_stmt_execute($update_statement); 
      mysqli_stmt_close($update_statement); 

      $update_statement = mysqli_prepare($con, "UPDATE location SET lastDayName7=? WHERE username=?"); 
      mysqli_stmt_bind_param($update_statement, "ss", $null_value, $username); 
      mysqli_stmt_execute($update_statement); 
      mysqli_stmt_close($update_statement); 
      $response["success"] = true; 
      break; 
     case "7": /* I don't think this one will be used because it is the last location anyway */ 
      $update_statement = mysqli_prepare($con, "UPDATE location SET lastDayName7=? WHERE username=?"); 
      mysqli_stmt_bind_param($update_statement, "ss", $lastDayName, $username); 
      mysqli_stmt_execute($update_statement); 
      mysqli_stmt_close($update_statement); 
      $response["success"] = true; 
      break; 
     default: 
      $response["success"] = false; 
      break; 
    } 

    $con = null; 
    echo json_encode($response); 
?> 

+0

감사합니다. 이 문제가 해결되었습니다. 내 PHP 코드에서 직접''''을 사용할 수 없다고 생각합니다. – TheAnonymous010

+0

환영 @ TheAnonymous010 –

관련 문제