2017-09-09 3 views
0

내 retroplit 인스턴스에 객체 배열을 반복하는 내 안드로이드 프로젝트에 향상된 루프가 있습니다.PDO PHP 업데이트 만 1 행을 업데이트합니다.

Retrofit은 결국 업데이트 작업이 끝나는 JSON 배열을 만듭니다. 문제는 단지 1 행만 업데이트한다는 것입니다.

개조는

{ 
"answer": { 
    "answerString": "Answer1", 
    "correct": "Incorrect", 
    "question_id": "1", 
    "unique_id_edit": "59b43c44a0f755.82885599" 
}, 
"operation": "answer_edit" 
} 

{ 
"answer": { 
    "answerString": " Answer2", 
    "correct": "Incorrect", 
    "question_id": "1", 
    "unique_id_edit": " 59b43c44a10653.76375270" 
}, 
"operation": "answer_edit" 
} 

{ 
"answer": { 
    "answerString": " Answer3", 
    "correct": "Incorrect", 
    "question_id": "1", 
    "unique_id_edit": " 59b43c44a1b5c6.27290898" 
}, 
"operation": "answer_edit" 
} 

{ 
"answer": { 
    "answerString": " Answer4", 
    "correct": "Incorrect", 
    "question_id": "1", 
    "unique_id_edit": " 59b43c44a2b765.62888841" 
}, 
"operation": "answer_edit" 
} 

나는 갱신이 내 변수에서 참조하는 테이블 인

public function editAnswer($unique_id_edit, $answerString, $correct, $question_id){ 



$sql = "UPDATE answer SET answerString = :answerString, correct = :correct WHERE unique_id = :unique_id AND question_id = :question_id"; 



// Prepare statement 
$query = $this ->conn ->prepare($sql); 

// execute the query 
$query->execute(array(':unique_id' => $unique_id_edit, ':answerString' => $answerString,':correct' => $correct, ':question_id' => $question_id)); 



if($query){ 

    var_dump(); 
    return true; 


} else { 

    return false; 

    } 
} 

쿼리 다음 한 내 업데이트 스크립트에 의해 추적 JSON 배열 하나를 보내드립니다 데이터가 갱신되는 위치.

CREATE TABLE answer(
answer_id int(11) NOT NULL AUTO_INCREMENT, 
unique_id varchar(23) NOT NULL, 
answerString varchar(50) NOT NULL, 
correct varchar(20) NOT NULL, 
question_id int (11) NOT NULL, 
PRIMARY KEY (answer_id), 
    FOREIGN KEY (`question_id`) 
    REFERENCES `scratchcard`.`question` (`question_id`) 
    ); 

것들 내가 내가 JSON 배열이 내 안드로이드 프로그램에서 제대로 만들어 다음 내 PDO 파일을 통해 전송되고 있는지 확인하기 위해 OkHttpClient을 사용했다

를 해결하기 위해 노력했습니다 - 그들이하는 .

나는 또한 var_dump();을 사용하고 각 변수를 검사하여 의도 한 값을 유지하고 있는지 확인했습니다.

내 업데이트 쿼리에 문제가 있다고 생각하지만 문제를 수정하는 방법과 Postman이 오류를주지 않는 이유가 확실하지 않습니다. 단지 침묵으로 인해 실패합니다!

도움/조언을 보내 주시면 감사하겠습니다.

+0

'$ success = $ query-> execute ......'그리고 나서 if this like'if ($ success) {...}' – Fawaz

답변

0

나는이 문제를 발견 할 수 있었고 앞으로 다른 사람들에게 도움이 될 수 있도록 답변을 게시 할 것이라고 생각했습니다. 그러나에 IE

{ 
"answer": { 
"answerString": "Answer1", <----Here is ok 
"correct": "Incorrect", 
"question_id": "1", 
"unique_id_edit": "59b43c44a0f755.82885599" <------ Here is ok 
}, 
"operation": "answer_edit" 
} 

에는 공백이 없기 때문에 내 질문에

, 나는 통해 전송되는 JSON 배열의 모든 게시, 예리한 눈은 내 첫 번째 배열은 항상 업데이트 된 이유는 것을 알 수 있습니다 내 모든 다른 JSON 배열, 나는 약간의 공백이

{ 
"answer": { 
"answerString": " Answer2", <-----Blank space between the quotes 
"correct": "Incorrect", 
"question_id": "1", 
"unique_id_edit": " 59b43c44a10653.76375270" <-----Blank space between the quotes 
}, 
"operation": "answer_edit" 
} 

나는 값이

String answer1 = et_answer1_edit.getText().toString().trim(); 
를 IE 설정 한 후 따라서 해결하기 위해, 나는 간단히() .trim라고