제목 그대로입니다.. 


제가 사용할 Json형태는

{"변수명":"값","변수명":"값","변수명":"값","변수명":"값","변수명":"값",}과 같이

Array없이 Object로만 구성되있고.. 아래의 코드중 jstring으로 Json값을 받아옵니다.



ICS이기때문에 AsyncTask를 써서 아래와 같이 파라미터를 전송하는 쓰레드를 만들었습니다.

 


protected HttpResponse doInBackground(String... params) {

HttpClient objHttp = new DefaultHttpClient();

try {

HttpPost objPost = new HttpPost(url);

List<NameValuePair> objValuePairs = new ArrayList<NameValuePair>(2);

objValuePairs.add(new BasicNameValuePair("json", jstring));                   //jstring을 인자값으로 넣는 곳

objPost.setEntity(new UrlEncodedFormEntity(objValuePairs, "UTF-8"));



                        //전송하는 부분

HttpResponse objResponse = objHttp.execute(objPost);

if (objResponse.getStatusLine().getStatusCode() < 400) {

InputStream objStream = objResponse.getEntity().getContent();

InputStreamReader objReader = new InputStreamReader(objStream);

BufferedReader objBuf = new BufferedReader(objReader);

StringBuilder objJson = new StringBuilder();

String sLine;

while ((sLine = objBuf.readLine()) != null) {

objJson.append(sLine);

}

objStream.close();

}

} catch (IOException e) {


}


return null;

}



php 부분은 이렇습니다.


<?


$json_list = $_REQUEST['json'];  //받아온 Json 문자열을 변수에 넣는 부분.. 


$temp_id = $json_list['id'];

$temp_pw = $json_list['pw'];

$temp_reg_id = $json_list['reg_id'];

$temp_name = $json_list['name'];           <--- $json_list[];부분을 전부 '1';로 바꿔주면 php가 동작하고

$temp_nick = $json_list['nick'];                         DB에 1이라는 값으로 저장됩니다.

$temp_email = $json_list['email'];

$temp_sex = $json_list['sex'];


$link = mysql_connect("localhost", "제 사용자명", "제 DB비밀번호");


if(!$link){

print("fail");

exit();

}


$status = mysql_select_db("gnu");


mysql_query("INSERT INTO `gnu`.`g4_member` ( `mb_id`, `mb_password`, `mb_name`, `mb_nick`, `mb_email`, `mb_1`,`mb_level`, `mb_sex`) VALUES ($temp_id, PASSWORD($temp_pw), $temp_name, $temp_nick, $temp_email, $temp_reg_id, '10', $temp_sex)");



?>




왜 이럴까요ㅠㅠㅠ 삼일째 이것만 하고 있습니다ㅜㅜ