我有一个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)
。