2016-09-21 33 views
-1

我想從我的android應用程序獲取數據並將其放入sql數據庫中,該數據庫位於phpmyadmin(wampp服務器)中。 這是我的代碼:從android應用程序獲取數據,並將其存儲在sql數據庫中使用php

package com.example.sara.myapplication; 

import android.app.ProgressDialog; 
import android.os.AsyncTask; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 
import java.io.BufferedReader; 
import java.io.InputStreamReader; 
import java.net.HttpURLConnection; 
import java.net.URL; 

public class addupdel_activity extends AppCompatActivity implements View.OnClickListener{ 

    private EditText name; 
    private EditText author; 
    private EditText iisbn; 

    private final String REGISTER_URL = "http://localhost/android/create_book.php"; 
    private Button Aggiungi; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_addupdel_activity); 

     name = (EditText) findViewById(R.id.nome); 
     author= (EditText) findViewById(R.id.autore); 
     iisbn = (EditText) findViewById(R.id.isbn); 


     Aggiungi = (Button) findViewById(R.id.Aggiungi); 
     Aggiungi.setOnClickListener(this); 
    } 

    @Override 
    public void onClick(View v) { 
     if(v == Aggiungi){ 
      registerUser(); 
     } 
    } 

    private void registerUser() { 
     String nome = name.getText().toString().trim().toLowerCase(); 
     String autore = author.getText().toString().trim().toLowerCase(); 
     String isbn= iisbn.getText().toString().trim().toLowerCase(); 


     register(nome,autore,isbn); 
    } 

    private void register(String nome, String autore, String isbn) { 
     String urlSuffix = "?nome=nome&autore=autore&isbn=isbn"; 
     class RegisterUser extends AsyncTask<String, Void, String>{ 

      ProgressDialog loading; 


      @Override 
      protected void onPreExecute() { 
       super.onPreExecute(); 
       loading = ProgressDialog.show(addupdel_activity.this, "Please Wait",null, true, true); 
      } 

      @Override 
      protected void onPostExecute(String s) { 
       super.onPostExecute(s); 
       loading.dismiss(); 
       Toast.makeText(getApplicationContext(),s, Toast.LENGTH_LONG).show(); 
      } 

      @Override 
      protected String doInBackground(String... params) { 
       String s = params[0]; 
       BufferedReader bufferedReader = null; 
       try { 
        URL url = new URL(REGISTER_URL+s); 
        HttpURLConnection con = (HttpURLConnection) url.openConnection(); 
        bufferedReader = new BufferedReader(new InputStreamReader(con.getInputStream())); 

        String result; 

        result = bufferedReader.readLine(); 

        return result; 
       }catch(Exception e){ 
        return null; 
       } 
      } 
     } 

     RegisterUser ru = new RegisterUser(); 
     ru.execute(urlSuffix); 
    } 
} 

php file

result

有人能告訴我我在哪裏犯錯?爲什麼它不在sql中存儲值。

在此先感謝。

回答

0

您沒有使用傳遞給register方法的值。改變這一行:

String urlSuffix = "?nome=nome&autore=autore&isbn=isbn"; 

到:

String urlSuffix = "?nome="+nome+"&autore="+autore+"&isbn="+isbn"; 

,然後更改doInBackground方法:

int responseCode = 0; 
try { 

     URL url = new URL(REGISTER_URL+s); 
     HttpURLConnection con = (HttpURLConnection) url.openConnection(); 

     // optional default is GET 
     con.setRequestMethod("GET"); 
     responseCode = con.getResponseCode(); 
     if (responseCode == 200) { 
      BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream())); 
      String inputLine; 
      StringBuilder response = new StringBuilder(); 

      while ((inputLine = in.readLine()) != null) { 
       response.append(inputLine); 
      } 

      in.close(); 
      return response.toString(); 
     } 

    } catch (Exception ex) { 
     Log.i("CaughtException", ex.getMessage()); 
    } 
return "Error Found with Response Code = " + responseCode; 
} 
+0

這是給我這個錯誤:錯誤:無法找到符號變量responseCode – Sara

+0

之前剛剛intialize它'try' block as int'responseCode = 0'; –

+0

doinbackground中缺少return語句。 – Sara

0

你確保這個環節的工作?

http://localhost/android/create_book.php?nome=nome&autore=autore&isbn=isbn

只是嘗試火網址在瀏覽器烏爾,如果它的返回一個真實結果,那麼我認爲錯誤是發生在烏爾doInBackground任務。

,因爲我從來沒有嘗試使用烏爾方法來連接數據庫,但我可以建議ü使用okHttpClient3庫數據庫連接,而不是

+0

我改變了鏈接,它正在工作。 – Sara

相關問題