2015-04-27 116 views
3

我嘗試使用OutputStreamWriter將一些數據從Android發送回服務器(數據庫),但我無法在數據庫中看到任何結果,Logcat也沒有問題。我嘗試了在stackoverflow上發佈的解決方案,但沒有運氣。這裏是我的代碼: -php無法接收Android使用HttpURLConnection發送的數據

private class sentFeedback extends AsyncTask<String,Void,String>{ 
    @Override 
    protected String doInBackground(String... params) { 
     if(isNetworkAvailable()){ 
      try{ 
       URL feedback = new URL("http:.../setFeedback.php"); 
       HttpURLConnection conn = (HttpURLConnection) feedback.openConnection(); 
       conn.setDoOutput(true); 
       conn.setRequestMethod("POST"); 
       OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream()); 
       String data = getData(params); 
       wr.write(data); 
       wr.flush(); 

      } catch (MalformedURLException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     }else{ 
      return "No internet connection"; 
     } 
     return null; 
    } 

    public String getData(String... params) throws UnsupportedEncodingException { 

     String data = "id" + "=" + URLEncoder.encode(params[0], "UTF-8"); 
     data += "&" + "rating" + "=" + URLEncoder.encode(params[1], "UTF-8"); 
     data += "&" + "message" + "=" + URLEncoder.encode(params[2], "UTF-8"); 
     return data; 
    } 
} 

PHP代碼: -

$id = $_POST['id']; 
$rating = (double)$_POST['rating']; 
$message = $_POST['message']; 

$feedbackQuery = "INSERT INTO feedback(message, id, rating) VALUES ('$message', '$id', '$rating')"; 
$feedbackQueryResult = $mysqli->query($feedbackQuery); 

$mysqli->close(); 

目前我使用的是免費000webhost的帳戶。這是我可以發回數據的原因嗎?

在此先感謝!

+0

大家好,我的問題解決了,你有沒有找到這個問題的答案?我一直在這個問題上堅持了一個多星期。如果你已經找到了一個解決方案,你可以發表一個答案與Android和PHP代碼:) – edwinj

回答

0

在PHP文件替換你的tablenNamedbName.tableName查詢字符串,例如,如果數據庫名是mydb

$feedbackQuery = "INSERT INTO mydb.feedback(message, id, rating) VALUES ('$message', '$id', '$rating')"; 

並再次測試,在一個項目中與此

相關問題