2016-08-28 105 views
0

我插入一些值從我的Android登錄頁面到MySQL數據庫使用PHP。插入值到MySQL使用php

的login.php

<?php 

$con = mysql_connect("localhost","abc","xyz") or die(mysql_error()); 
mysql_select_db("sync",$con) or die(mysql_error()); 

$user_name = $_POST['user_name']; 
$user_mobile_no = $_POST['user_mobile_no']; 
$user_email_id = $_POST['user_email_id']; 
$imei_no = $_POST['imei_no']; 
$login_date = $_POST['login_date']; 
$time = $_POST['time']; 

$user_name = 'Navdeep'; 
$user_mobile_no = '12345678990'; 
$user_email_id = '[email protected]'; 
$imei_no = '1234567890'; 
$login_date = '24-12-2012'; 
$time = '01:01:01'; 

$result = mysql_query("INSERT INTO 
login_details(user_name,user_mobile_no,user_email_id, 
    imei_no,login_date,time) 
VALUES('$user_name','$user_mobile_no','$user_email_id',' $imei_no','$login_date','$time')"); 

if($result) 
{ 
    $response["success"] = 1; 
    $response["message"] = "User Details inserted successfully"; 

    echo json_encode($response); 
} else { 
    $response["success"] = 0; 
    $response["message"] = "There was an error inserting user details"; 
    echo json_encode($response); 
} 
mysql_close($con); 

?> 

當我使用$_POST['']值越來越插入空白,但是當我硬編碼是越來越插入值,需要一些幫助

的Android代碼:

try{ 
     JSONObject jsonObject = new JSONObject(); 
     jsonObject.put("user_name",userName); 
     jsonObject.put("user_mobile_no",mobNo); 
     jsonObject.put("user_email_id",email); 
     jsonObject.put("imei_no",imeino); 
     jsonObject.put("login_date",date); 
     jsonObject.put("time",time); 
     JSONArray jsonArray = new JSONArray(); 
     jsonArray.put(jsonObject); 
     String basicAuth = "Device " + new 
     String(Base64.encode((imeino).getBytes(), Base64.NO_WRAP)); 
     RequestBody body = 
     RequestBody.create(JSON,String.valueOf(jsonArray)); 
     OkHttpClient okHttpClient = new OkHttpClient(); 
     Request request = new Request.Builder().header("Authorization", 
     basicAuth).url(url).post(body).build(); 
     Call call = okHttpClient.newCall(request); 
     call.enqueue(new Callback() { 
      @Override 
      public void onFailure(Call call, IOException e) { 
       e.printStackTrace(); 
       Login.this.runOnUiThread(new Runnable() { 

        @Override 
        public void run() { 
         Toast.makeText(getBaseContext(), "Request to the 
         server failed", Toast.LENGTH_SHORT).show(); 
        } 
       }); 
      } 

      @Override 
      public void onResponse(Call call, Response response) throws 
      IOException { 
       Log.i("response ", "onResponse(): " + response); 
       StatusLine statusLine = null; 
       String result = response.body().string(); 
       if(result.equals("") || result.equals(null)){ 
        Log.i("No response", "No response"); 
       }else{ 
        Log.i("Response","Response "+result); 
        statusLine = StatusLine.get(response); 
        final int responseCode = statusLine.code; 
        Log.d("Code:", String.valueOf(responseCode)); 
       } 
      } 
     }); 
    }catch (Exception e){ 
     e.printStackTrace(); 
    } 
+0

它你確定你的數據被正確傳遞,那麼你添加的內容類型頭「內容類型」,「應用/ JSON」;字符集= 「UTF-8」;要求。還要確保你在服務器端正確接收你的json對象或數組。否則,嘗試凌空抽象,使所有這一切無縫 –

+0

加上使用服務器端,您的接收JSON,所以我不認爲我可以這樣獲取數據,請嘗試$ payload = file_get_content('php:// input'); $ request = json_decode($ payload);那麼你可以做$ username = $ request-> user_name;發送作爲迴應ñ看看我可以拿起它或應用程序 –

回答

1

您應該發送表單數據請求f rom android。 替換此

JSONObject jsonObject = new JSONObject(); 
     jsonObject.put("user_name",userName); 
     jsonObject.put("user_mobile_no",mobNo); 
     jsonObject.put("user_email_id",email); 
     jsonObject.put("imei_no",imeino); 
     jsonObject.put("login_date",date); 
     jsonObject.put("time",time); 
     JSONArray jsonArray = new JSONArray(); 
     jsonArray.put(jsonObject); 
     String basicAuth = "Device " + new 
     String(Base64.encode((imeino).getBytes(), Base64.NO_WRAP)); 
     RequestBody body = 
     RequestBody.create(JSON,String.valueOf(jsonArray)); 
     OkHttpClient okHttpClient = new OkHttpClient(); 
     Request request = new Request.Builder().header("Authorization", 
     basicAuth).url(url).post(body).build(); 

隨着

RequestBody formBody = new FormBody.Builder() 
      .add("user_name",userName) 
      .add("user_mobile_no",mobNo) 
      .add("user_email_id",email) 
      .add("imei_no",imeino) 
      .add("login_date",date) 
      .add("time",time) 
      .build(); 

String basicAuth = "Device " + new 
     String(Base64.encode((imeino).getBytes(), Base64.NO_WRAP)); 
    Request request = new Request.Builder().header("Authorization", 
      basicAuth).url(url).post(formBody).build(); 
+0

這工作表示感謝,但是jsonarray沒有工作的原因是什麼? –

+1

您在正文中添加原始數據,因此您無法使用$ _POST獲取數據。如何在PHP中獲取原始數據檢查這篇文章,你可以轉換你的PHP腳本只工作不從android http://stackoverflow.com/questions/8945879/how-to-get-body-of-a-post-在-PHP – USKMobility