我有一个mainactivity,它使用PHP将数据插入MySQL数据库。插入过程运行正常。对于PHP脚本,我一直保留成功的意思,否则保留失败的意思。而且我从PHP得到正确的结果。但是当我像if(result=="yes")//do else//do another比较时。

尽管PHP的结果是肯定的,但其他部分仍无法正常工作。

这是我的mainactivity.java

 package com.example.demo;

    import java.io.BufferedReader;

    import java.io.InputStream;
    import java.io.InputStreamReader;

    import org.apache.http.HttpEntity;
    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 android.support.v7.app.ActionBarActivity;

    import android.os.AsyncTask;
    import android.os.Bundle;
    import android.util.Log;

    import android.view.View;
    import android.view.View.OnClickListener;

    import android.widget.Button;
    import android.widget.EditText;

    import android.widget.Toast;

    public class MainActivity extends ActionBarActivity {
        String em, pw, un, mb, msg = null;
        EditText t1, t2, t3, t4;
        Button b;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            t1 = (EditText) findViewById(R.id.editText1);
            t2 = (EditText) findViewById(R.id.editText2);
            t3 = (EditText) findViewById(R.id.editText3);
            t4 = (EditText) findViewById(R.id.editText4);
            b = (Button) findViewById(R.id.button1);

            b.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {

                    un = t1.getText().toString();
                    pw = t2.getText().toString();
                    em = t3.getText().toString();
                    mb = t4.getText().toString();
                    new LoginAsync()
                            .execute("http://androide.netne.net/register.php?un="
                                    + un + "&em=" + em + "&pw=" + pw + "&mb=" + mb
                                    + ")");

                }
            }

            );
        }

        private class LoginAsync extends AsyncTask<String, Void, String> {

            String line, result;

            InputStream is = null;

            @Override
            protected String doInBackground(String... params) {
                try {
                    HttpClient httpclient = new DefaultHttpClient();
                    HttpGet httpget = new HttpGet(params[0]);
                    HttpResponse response = httpclient.execute(httpget);
                    HttpEntity entity = response.getEntity();
                    is = entity.getContent();
                    Log.e("pass 1", "connection success ");
                } catch (Exception e) {
                    Log.e("Fail 1", e.toString());
                }
               try {
                    BufferedReader reader = new BufferedReader(
                            new InputStreamReader(is, "iso-8859-1"), 8);
                    StringBuilder sb = new StringBuilder();
                    while ((line = reader.readLine()) != null) {
                        sb.append(line + "\n");
                    }
                    is.close();
                    result = sb.toString();

                    if (result.equals("no")) {
                        msg = "email id already taken";
                    } else {
                        msg = "Registered successfully";
                    }
                    Log.e("pass 2", "connection success " + result);
                } catch (Exception e) {
                    Log.e("Fail 2", e.toString());
                }
                return msg;

            }

            @Override
            protected void onPostExecute(String result) {
                Toast.makeText(getApplicationContext(), result, Toast.LENGTH_SHORT)
                        .show();
            }

        }

    }

here is my php file

<?php
$name = $_GET['un'];
$email = $_GET['em'];
$password = $_GET['pw'];
$mobile = $_GET['mb'];
$con=mysqli_connect("DBHOST","DBUSER","DBPASSWORD","DBNAME");
if (mysqli_connect_errno($con))
{
   echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql="INSERT INTO users(name,email,password,mobile) VALUES ('$name','$email','$password','$mobile')";
if (mysqli_query($con,$sql))
{
   echo "yes";
}
else{
 echo "no";
}
?>

最佳答案

要查看两个字符串是否相等,请使用firstString.compareTo(anotherString) == 0。使用==.equals()测试对象是否相同,而不是所包含的字符串。

对于您的情况,您可以执行if (result.compareTo("no") == 0)

10-07 19:23
查看更多