2017-03-23 56 views
-5

Android Java插入數據庫的最佳方式是什麼?Android Java插入mysql數據庫

我不知道該如何啓動,我唯一知道的是我需要連接到數據庫,爲數據庫準備一個語句並執行sql。

+0

顯示驗證碼 – Jens

+0

你的問題不在於使用Java插入數據庫,它是使用Java發送請求並使用PHP處理請求**和**插入到數據庫中。 – xhg

+0

你先生或女士是正確的,我編輯了這個問題。 – Frank

回答

0

嘗試在PHP中回顯變量$ id。你的查詢對我來說似乎很好,所以將android的id變量傳遞給PHP一定會有問題。如果您發出POST請求並且該ID已成功傳遞給Web服務,那麼您的查詢存在問題。

如果你不能傳遞變量,試試這個代碼:

  InputStream input = conn.getInputStream(); 
      BufferedReader reader = new BufferedReader(new InputStreamReader(input)); 
      StringBuilder result = new StringBuilder(); 
      String line; 

      while ((line = reader.readLine()) != null) { 
       result.append(line); 
      } 
      System.out.println(result.toString()); 

在PHP中的SQL查詢:

 HttpUrlConnection conn = (HttpURLConnection) url.openConnection(); 
     conn.setRequestMethod("POST"); 

     conn.setDoInput(true); 
     conn.setDoOutput(true); 

     // Append parameters to URL 
     Uri.Builder builder = new Uri.Builder(); 
     builder.appendQueryParameter("id", "your value"); 
     String query = builder.build().getEncodedQuery(); 

     // Open connection for sending data 
     OutputStream os = conn.getOutputStream(); 
     BufferedWriter writer = new BufferedWriter(
       new OutputStreamWriter(os, "UTF-8")); 
     writer.write(query); 
     writer.flush(); 
     writer.close(); 
     os.close(); 
     conn.connect(); 

你可以通過你的連接後,使用這些行看到你的PHP回聲,您可以使用PDO(將示例中使用的變量保存在您的數據庫連接證書中):

try { 
    $conn = new PDO("mysql:host=$db_servername;dbname=$db_dbname", $db_username, $db_password); 
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    $conn->beginTransaction(); 
    $sql = "SELECT * FROM anything"; 
    $stmt = $conn->prepare($sql); 
    $stmt->bindParam(':id', $id, PDO::PARAM_INT); 
    $stmt->execute(); 
    $conn->commit(); 
} catch (Exception $e) { 
    $conn->rollBack(); 
    echo $e->getMessage(); 
}