在android中调用php函数会在mysql中添加空白记录

在android中调用php函数会在mysql中添加空白记录,php,android,mysql,Php,Android,Mysql,我已经创建了android应用程序,用于向本地主机服务器添加数据。问题是每次我输入数据并提交时,android应用程序中都没有错误报告。但是添加到mysql数据库的数据在所有字段中都是空白的。有人知道如何克服这个问题吗 正如一位同事问的那样,我已经添加了代码 package localhost80.sample1; import android.content.Context; import android.os.AsyncTask; import android.widget.Toast

我已经创建了android应用程序,用于向本地主机服务器添加数据。问题是每次我输入数据并提交时,android应用程序中都没有错误报告。但是添加到mysql数据库的数据在所有字段中都是空白的。有人知道如何克服这个问题吗

正如一位同事问的那样,我已经添加了代码

package localhost80.sample1; 
import android.content.Context; 
import android.os.AsyncTask; 
import android.widget.Toast; 
import org.apache.http.HttpResponse; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.methods.HttpGet; 
import org.apache.http.impl.client.DefaultHttpClient; 
import java.io.BufferedWriter; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.OutputStream; 
import java.io.OutputStreamWriter; 
import java.net.HttpURLConnection; 
import java.net.MalformedURLException; 
import java.net.URI; 
import java.net.URL; 
import java.net.URLEncoder; 
public class serverLinking extends AsyncTask<String, Void, String> 
{ 
   private String link; 
   private Context context; 
   private String ed,lno,par,pcs,mts,wt,ct,var,gw,fw,remarks,method; 

   public serverLinking(Context context) 
    { 
        this.context = context; 
    } 

   protected void onPreExecute() 
    { 
        super.onPreExecute(); 
    } 
@Override 
   protected String doInBackground(String... arg0) 
    { 
        method = arg0[11]; 
        link = "http://192.168.0.104/narmadaa_trial1/android/add.php";         
        if(method.equals("POST")) 
        { 
            ed = arg0[0]; 
            lno = arg0[1]; 
            par = arg0[2]; 
            pcs = arg0[3]; 
            mts = arg0[4]; 
            wt = arg0[5]; 
            ct = arg0[6]; 
            var = arg0[7]; 
            gw = arg0[8]; 
            fw = arg0[9]; 
            remarks = arg0[10]; 

            try 
            { 
                URL url = new URL(link); 
                HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
                httpURLConnection.setRequestMethod(method);    
                httpURLConnection.setDoOutput(true); 
                OutputStream os = httpURLConnection.getOutputStream();
                BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(os,"UTF-8")); 
                String data = URLEncoder.encode("ed","UTF-8")+"="+URLEncoder.encode("lno","UTF-8")+"="+URLEncoder.encode("par","UTF-8")+"="+ URLEncoder.encode("pcs","UTF-8")+"="+URLEncoder.encode("mts","UTF-8")+"="+URLEncoder.encode("wt","UTF-8")+"="+ URLEncoder.encode("ct","UTF-8")+"="+URLEncoder.encode("var","UTF-8")+"="+URLEncoder.encode("gw","UTF-8")+"="+ URLEncoder.encode("fw","UTF-8")+"="+URLEncoder.encode("remarks","UTF-8"); 
                bufferedWriter.write(data);
                bufferedWriter.flush(); 
                bufferedWriter.close(); 
                os.close(); 
                InputStream IS = httpURLConnection.getInputStream();
                IS.close(); 
                return "Data Added Successfully"; 
        } 
    catch (MalformedURLException e)
    { 
        e.printStackTrace();
     } 
    catch (IOException e)
    { 
        e.printStackTrace(); 
    } 
   } 
  return null; 
} 

    protected void onPostExecute(String result) 
    { 
        Toast.makeText(context,result,Toast.LENGTH_LONG).show(); 
    } 

    protected void onProgressUpdate(Void... values) 
    { 
        super.onProgressUpdate(values); 
    } 
}
包localhost80.sample1;
导入android.content.Context;
导入android.os.AsyncTask;
导入android.widget.Toast;
导入org.apache.http.HttpResponse;
导入org.apache.http.client.HttpClient;
导入org.apache.http.client.methods.HttpGet;
导入org.apache.http.impl.client.DefaultHttpClient;
导入java.io.BufferedWriter;
导入java.io.IOException;
导入java.io.InputStream;
导入java.io.OutputStream;
导入java.io.OutputStreamWriter;
导入java.net.HttpURLConnection;
导入java.net.MalformedURLException;
导入java.net.URI;
导入java.net.URL;
导入java.net.urlcoder;
公共类服务器链接扩展异步任务
{ 
私有字符串链接;
私人语境;
私有字符串ED,LNO,PAR,PCS,MTS,WT,CT,VAR,GW,FW,备注,方法;
公共服务器链接(上下文)
{ 
this.context=上下文;
} 
受保护的void onPreExecute()
{ 
super.onPreExecute();
} 
@凌驾
受保护的字符串doInBackground(字符串…arg0)
{ 
方法=arg0[11];
链接=”http://192.168.0.104/narmadaa_trial1/android/add.php";         
if(方法等于(“POST”))
{ 
ed=arg0[0];
lno=arg0[1];
PAR=ARG0〔2〕;
pcs=arg0[3];
mts=arg0[4];
wt=arg0[5];
ct=arg0[6];
var=arg0[7];
gw=arg0[8];
fw=arg0[9];
备注=arg0[10];
尝试
{ 
URL=新的URL(链接);
HttpURLConnection HttpURLConnection=(HttpURLConnection)url.openConnection();
httpURLConnection.setRequestMethod(方法);
httpURLConnection.setDoOutput(true);
OutputStream os=httpURLConnection.getOutputStream();
BufferedWriter BufferedWriter=新的BufferedWriter(新的OutputStreamWriter(os,“UTF-8”));
字符串数据=urlcoder.encode(“ed”、“UTF-8”)+“=+urlcoder.encode(“lno”、“UTF-8”)+”=+urlcoder.encode(“par”、“UTF-8”)+”=+urlcoder.encode(“pcs”、“UTF-8”)+“+urlcoder.encode(“mts”、“UTF-8”)+”=+urlcoder.encode(“wt”、“UTF-8”)+”=+urlcoder.encoder.encode(“ct”、“UTF-8”)+“+urlcoder+urlcoder.encode(“fw”,“UTF-8”)+“=”+urlcoder.encode(“备注”,“UTF-8”);
bufferedWriter.write(数据);
bufferedWriter.flush();
bufferedWriter.close();
os.close();
InputStream=httpURLConnection.getInputStream();
IS.close();
返回“数据添加成功”;
} 
捕获(格式错误)
{ 
e、 printStackTrace();
} 
捕获(IOE异常)
{ 
e、 printStackTrace();
} 
} 
返回null;
} 
受保护的void onPostExecute(字符串结果)
{ 
Toast.makeText(上下文、结果、Toast.LENGTH_LONG).show();
} 
受保护的void onProgressUpdate(void…值)
{ 
super.onProgressUpdate(值);
} 
}

检查add.php上收到的数据($\u GET或$\u REQUEST)

非常感谢@Meow Kim的宝贵建议。我已经四舍五入并找到了问题的结论,正是在post请求中丢失的登录导致了这个可怕的问题。 还要感谢@Magnus Eriksson不断提出建议来帮助我。因此,上述内容的最终代码如下所示

AddEntry.java(为了便于识别,刚刚重命名了Sample1.java主活动文件)

ServerLinking.java(服务器的连接器文件)

包am.dx.narmadaa.addentry;
导入android.content.Context;
导入android.os.AsyncTask;
导入android.widget.Toast;
导入java.io.BufferedWriter;
导入java.io.IOException;
导入java.io.InputStream;
导入java.io.OutputStream;
导入java.io.OutputStreamWriter;
导入java.net.HttpURLConnection;
导入java.net.MalformedURLException;
导入java.net.URL;
导入java.net.urlcoder;
公共类服务器链接扩展异步任务
{
私有字符串链接;
私人语境;
私有字符串错误;
私有字符串ED,LNO,PAR,PCS,MTS,WT,CT,VAR,GW,FW,备注,方法;
公共服务器链接(上下文){
this.context=上下文;
}
受保护的void onPreExecute(){
super.onPreExecute();
}
@凌驾
受保护的字符串doInBackground(字符串…arg0){
方法=arg0[11];
链接=”http://192.168.0.101/android/add.php";
if(方法等于(“POST”)){
ed=arg0[0];
lno=arg0[1];
PAR=ARG0〔2〕;
pcs=arg0[3];
mts=arg0[4];
wt=arg0[5];
ct=arg0[6];
var=arg0[7];
gw=arg0[8];
fw=arg0[9];
备注=arg0[10];
试一试{
URL=新的URL(链接);
HttpURLConnection HttpURLConnection=(HttpURLConnection)url.openConnection();
httpURLConnection.setRequestMethod(方法);
httpURLConnection.setDoOutput(true);
OutputStream os=httpURLConnection.getOutputStream();
BufferedWriter BufferedWriter=新的BufferedWriter(新的OutputStreamWriter(os,“UTF-8”));
字符串数据=urlcoder.encode(“ed”,“UTF-8”)+“=”+urlcoder.encode(ed,“UTF-8”)+“&”+
URLEncoder.encode(“lno”,“UTF-8”)+”=“+URLEncoder.encode(lno,“UTF-8”)+”&”+
URLEncoder.encode(“par”,“UTF-8”)+“=”+URLEncoder.encode(par,“UTF-8”)+“&”+
URLEncoder.encode(“pcs”,“UTF-8”)+“=”+
package localhost80.sample1;
import android.content.Context;
import android.os.AsyncTask;
import android.widget.Toast;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URL;
import java.net.URLEncoder;
public class serverLinking extends AsyncTask < String, Void, String > {
    private String link;
    private Context context;
    private String ed, lno, par, pcs, mts, wt, ct,
    var, gw, fw, remarks, method;
    public serverLinking(Context context) {
        this.context = context;
    }
    protected void onPreExecute() {
        super.onPreExecute();
    }
    @Override protected String doInBackground(String...arg0) {
        method = arg0[11];
        link = "http://192.168.0.104/narmadaa_trial1/android/add.php";
        if (method.equals("POST")) {
            ed = arg0[0];
            lno = arg0[1];
            par = arg0[2];
            pcs = arg0[3];
            mts = arg0[4];
            wt = arg0[5];
            ct = arg0[6];
            var = arg0[7];
            gw = arg0[8];
            fw = arg0[9];
            remarks = arg0[10];
            try {
                URL url = new URL(link);
                HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
                httpURLConnection.setRequestMethod(method);
                httpURLConnection.setDoOutput(true);
                OutputStream os = httpURLConnection.getOutputStream();
                BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));
                String data = URLEncoder.encode("ed", "UTF-8") + "=" + URLEncoder.encode("lno", "UTF-8") + "=" + URLEncoder.encode("par", "UTF-8") + "=" + URLEncoder.encode("pcs", "UTF-8") + "=" + URLEncoder.encode("mts", "UTF-8") + "=" + URLEncoder.encode("wt", "UTF-8") + "=" + URLEncoder.encode("ct", "UTF-8") + "=" + URLEncoder.encode("var", "UTF-8") + "=" + URLEncoder.encode("gw", "UTF-8") + "=" + URLEncoder.encode("fw", "UTF-8") + "=" + URLEncoder.encode("remarks", "UTF-8");
                bufferedWriter.write(data);
                bufferedWriter.flush();
                bufferedWriter.close();
                os.close();
                InputStream IS = httpURLConnection.getInputStream();
                IS.close();
                return "Data Added Successfully";
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return null;
    }
    protected void onPostExecute(String result) {
        Toast.makeText(context, result, Toast.LENGTH_LONG).show();
    }
    protected void onProgressUpdate(Void...values) {
        super.onProgressUpdate(values);
    }
}
String data = "ed=" + ed
            + "&lno=" + lno
            + "&par=" + par
            + ....
package am.dx.narmadaa.addentry;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;

public class addEntry extends AppCompatActivity {

public EditText Eed, Elno, Epar, Epcs, Emts, Ewt, Ect, Egw, Efw, Erem;
public Spinner Evar;
public String str_ed, str_lno, str_par, str_pcs, str_mts, str_wt, str_ct, str_var, str_gw, str_fw, str_rem, str_var_code;
public Button Add, Clr;

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

public void addInput() {
    Eed = findViewById(R.id.ed);
    Elno = findViewById(R.id.lno);
    Epar = findViewById(R.id.par);
    Epcs = findViewById(R.id.pcs);
    Emts = findViewById(R.id.mts);
    Ewt = findViewById(R.id.wt);
    Ect = findViewById(R.id.ct);
    Egw = findViewById(R.id.gw);
    Efw = findViewById(R.id.fw);
    Erem = findViewById(R.id.rem);
    Evar = findViewById(R.id.var);
    Add = findViewById(R.id.btnAdd);
    Clr = findViewById(R.id.btnClr);

    Add.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            str_ed = (Eed.getText()).toString();
            str_lno = (Elno.getText()).toString();
            str_par = (Epar.getText()).toString();
            str_pcs = (Epcs.getText()).toString();
            str_mts = (Emts.getText()).toString();
            str_wt = (Ewt.getText()).toString();
            str_ct = (Ect.getText()).toString();
            str_gw = (Egw.getText()).toString();
            str_fw = (Efw.getText()).toString();
            str_rem = (Erem.getText()).toString();
            str_var = (Evar.getSelectedItem()).toString();

            switch (Evar.getSelectedItemPosition()) {
                case 0:
                    str_var_code = "fw";
                    break;
                case 1:
                    str_var_code = "brw";
                    break;
                case 2:
                    str_var_code = "mw";
                    break;
                case 3:
                    str_var_code = "bw";
                    break;
                case 4:
                    str_var_code = "ow";
                    break;
            }
            displayToast(str_ed, str_lno, str_par, str_pcs, str_mts, str_wt, str_ct, str_var, str_gw, str_fw, str_rem);
            serverLinking hostlink = new serverLinking(addEntry.this);
            hostlink.execute(str_ed, str_lno, str_par, str_pcs, str_mts, str_wt, str_ct, str_var_code, str_gw, str_fw, str_rem, "POST");
        }
    });

    Clr.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Eed.setText("");
            Elno.setText("");
            Epar.setText("");
            Epcs.setText("");
            Emts.setText("");
            Ewt.setText("");
            Ect.setText("");
            Egw.setText("");
            Efw.setText("");
            Erem.setText("");
            Evar.setSelection(0);
        }
    });
}

private void displayToast(String d_ed, String d_lno, String d_par, String d_pcs, String d_mts, String d_wt, String d_ct, String d_var, String d_gw, String d_fw, String d_rem) {
    Toast toast = new Toast(getApplicationContext());
    String toasttext;
    toasttext = "Entry date : " + d_ed + "\nLot no : " + d_lno + "\nParty : " + d_par + "\nTotal Pcs : " + d_pcs + "\nTotal mtrs : " + d_mts + "\nTotal Weight : " + d_wt + "\nCount : " + d_ct + "\nVariety : " + d_var + "\nGray Width : " + d_gw + "\nFinishing Width : " + d_fw + "\nRemarks : " + d_rem;
    toast.setGravity(Gravity.TOP | Gravity.START, 0, 0);
    Toast.makeText(addEntry.this, toasttext, Toast.LENGTH_SHORT).show();
}
}
package am.dx.narmadaa.addentry;

import android.content.Context;
import android.os.AsyncTask;
import android.widget.Toast;

import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;

public class serverLinking extends AsyncTask<String, Void, String> 
{
private String link;
private Context context;
private String error;
private String ed, lno, par, pcs, mts, wt, ct, var, gw, fw, remarks, method;

public serverLinking(Context context) {
    this.context = context;
}

protected void onPreExecute() {
    super.onPreExecute();
}

@Override
protected String doInBackground(String... arg0) {
    method = arg0[11];
    link = "http://192.168.0.101/android/add.php";

    if (method.equals("POST")) {
        ed = arg0[0];
        lno = arg0[1];
        par = arg0[2];
        pcs = arg0[3];
        mts = arg0[4];
        wt = arg0[5];
        ct = arg0[6];
        var = arg0[7];
        gw = arg0[8];
        fw = arg0[9];
        remarks = arg0[10];
        try {
            URL url = new URL(link);
            HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
            httpURLConnection.setRequestMethod(method);
            httpURLConnection.setDoOutput(true);
            OutputStream os = httpURLConnection.getOutputStream();

            BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));

            String data = URLEncoder.encode("ed", "UTF-8") + "=" + URLEncoder.encode(ed, "UTF-8") + "&" +
                    URLEncoder.encode("lno", "UTF-8") + "=" + URLEncoder.encode(lno, "UTF-8") + "&" +
                    URLEncoder.encode("par", "UTF-8") + "=" + URLEncoder.encode(par, "UTF-8") + "&" +
                    URLEncoder.encode("pcs", "UTF-8") + "=" + URLEncoder.encode(pcs, "UTF-8") + "&" +
                    URLEncoder.encode("mts", "UTF-8") + "=" + URLEncoder.encode(mts, "UTF-8") + "&" +
                    URLEncoder.encode("wt", "UTF-8") + "=" + URLEncoder.encode(wt, "UTF-8") + "&" +
                    URLEncoder.encode("ct", "UTF-8") + "=" + URLEncoder.encode(ct, "UTF-8") + "&" +
                    URLEncoder.encode("var", "UTF-8") + "=" + URLEncoder.encode(var, "UTF-8") + "&" +
                    URLEncoder.encode("gw", "UTF-8") + "=" + URLEncoder.encode(gw, "UTF-8") + "&" +
                    URLEncoder.encode("fw", "UTF-8") + "=" + URLEncoder.encode(fw, "UTF-8") + "&" +
                    URLEncoder.encode("remarks", "UTF-8") + "=" + URLEncoder.encode(remarks, "UTF-8");

            bufferedWriter.write(data);
            bufferedWriter.flush();
            bufferedWriter.close();
            os.close();

            InputStream IS = httpURLConnection.getInputStream();
            IS.close();
            return "Data Added Successfully";
        } catch (MalformedURLException e) {
            e.printStackTrace();
            error = e.toString();
        } catch (IOException e) {
            e.printStackTrace();
            error = e.toString();
        }
    }
    return "Data Addition Failed\n Error Details : " + error;
}

//    @Override
protected void onPostExecute(String result) {
    Toast.makeText(context, result, Toast.LENGTH_LONG).show();
}

protected void onProgressUpdate(Void... values) {
    super.onProgressUpdate(values);
}
}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="am.dx.narmadaa.addentry">

<uses-permission android:name="android.permission.INTERNET"/>

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".addEntry">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

</manifest>