2017-03-23 29 views
-5

Android Javaがデータベースに挿入する最も良い方法は何ですか?Android Java INSERT INTO mysqlデータベース

私が知っている唯一のことは、データベースへの接続が必要であり、データベースのステートメントを準備し、SQLを実行することです。

+0

PHPコードを表示 – Jens

+0

あなたは、データベースに挿入するためにJavaを使用することではなく、Javaを使用してリクエストを送信し、PHPを使用してリクエストを処理し、**データベースに挿入します。 – xhg

+0

あなたはあなたですか、奥さんは正しいです、私は質問を編集しました。 – Frank

答えて

0

PHPで変数$ idをエコーし​​てみてください。あなたのクエリはうまくいくように見えるので、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を使用することができます(例で使用されている変数でDB接続資格情報を保存します)。

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(); 
}