2017-09-09 9 views
0

私は、私のアンドロイドプロジェクトでオブジェクトアレイを私のretrofitインスタンスにループさせる拡張ループを持っています。PDO PHPアップデートのみ1行を更新する

RetrofitはJSON配列を作成し、最終的には更新操作で終了します。問題は、1行だけが更新されることです。

レトロフィットは、私は、次の更新クエリ

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; 

    } 
} 

は、これは私の変数で参照されるテーブルである必要があり、私の更新スクリプト

{ 
"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" 
} 

に1によるフォローJSON配列1を送信しますデータは更新されます。

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アレイは私のAndroidのプログラムで正しく作成され、その後、私のPDOファイルに渡って送信されていることを確認するためにOkHttpClientを使用している

を解決するために試してみた - 彼らはです。

私はvar_dump();も使用し、各変数が意図した値を保持していることを確認しました。

私はこの問題が私の更新クエリにあると信じていますが、なぜ修正するかわからないし、Postmanは私にエラーを与えません。

助力/アドバイスをいただければ幸いです。

+0

'$ success = $ query-> execute ......'そしてあなたのifでこれが好きです '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" 
} 

を持って、私は単に(.trimと呼ばれる)私は値IE

String answer1 = et_answer1_edit.getText().toString().trim(); 
を設定した後、
関連する問題