Java 在android studio中向外部数据库插入信息

Java 在android studio中向外部数据库插入信息,java,php,android,mysql,Java,Php,Android,Mysql,我使用android studio从用户那里获取信息并将其插入外部数据库,我在youtube上看到了很多视频,但在运行时仍然存在一个问题,它说:“注册成功”,但没有插入数据库 这是我在android studio中的代码 公共类注册扩展了AppCompatActivity{ EditText email,password,name; Switch visually_impaired; String Email,Password,Name,Visually_impaired,Beacon_aler

我使用android studio从用户那里获取信息并将其插入外部数据库,我在youtube上看到了很多视频,但在运行时仍然存在一个问题,它说:“注册成功”,但没有插入数据库

这是我在android studio中的代码

公共类注册扩展了AppCompatActivity{

EditText email,password,name;
Switch visually_impaired;
String Email,Password,Name,Visually_impaired,Beacon_alert,Buildings_alert;;
Context ctx = this;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_signup);
    name = (EditText) findViewById(R.id.name_editText);
    password = (EditText) findViewById(R.id.password_editText);
    email = (EditText) findViewById(R.id.email_editText);
    visually_impaired = (Switch) findViewById(R.id.blindOpt);

}

public void register(View v){
    Email = email.getText().toString();
    Name = name.getText().toString();
    Password = password.getText().toString();
    Visually_impaired = visually_impaired.getText().toString();
    BackGround b = new BackGround(this);
    b.execute(Email,Password,Name,Visually_impaired);
}

class BackGround extends AsyncTask<String,String,String> {

    Context ctx;
    public BackGround(Context ctx){
        this.ctx = ctx;
    }

    @Override
    protected String doInBackground(String... strings) {
        String email = strings[0];
        String password = strings[1];
        String name = strings[2];
        String visually_impaired = strings[3];

        try {
            URL url = new URL("http://ksuexpress.com/register.php");
            HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
            httpURLConnection.setRequestMethod("POST");
            httpURLConnection.setDoOutput(true);
            OutputStream os = httpURLConnection.getOutputStream();
            BufferedWriter bufferWriter = new BufferedWriter(new OutputStreamWriter(os,"UTF-8"));
            String data = URLEncoder.encode("email","UTF-8")+ " = "+URLEncoder.encode(email,"UTF-8") +"&"+
                    URLEncoder.encode("password","UTF-8")+ " = "+URLEncoder.encode(password,"UTF-8") +"&"+
                    URLEncoder.encode("name","UTF-8")+ " = "+URLEncoder.encode(name,"UTF-8") +"&"+
                    URLEncoder.encode("visually_impaired","UTF-8")+ " = "+URLEncoder.encode(visually_impaired,"UTF-8");
            bufferWriter.write(data);
            bufferWriter.flush();
            bufferWriter.close();
            os.close();
            InputStream is = httpURLConnection.getInputStream();
            is.close();
            return "Registration success....";

        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        return null;
    }

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

    }
}
EditText电子邮件、密码、姓名;
切换视障者;
字符串电子邮件、密码、姓名、视力受损者、信标警报、建筑物警报;;
上下文ctx=此;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u注册);
name=(EditText)findViewById(R.id.name\u EditText);
密码=(EditText)findViewById(R.id.password\u EditText);
email=(EditText)findViewById(R.id.email\u EditText);
视力受损=(开关)findViewById(R.id.blindOpt);
}
公共无效登记册(视图五){
Email=Email.getText().toString();
Name=Name.getText().toString();
Password=Password.getText().toString();
视力受损=视力受损。getText().toString();
背景b=新背景(本);
b、 执行(电子邮件、密码、姓名、视力受损者);
}
类后台扩展异步任务{
上下文ctx;
公共背景(上下文ctx){
this.ctx=ctx;
}
@凌驾
受保护的字符串背景(字符串…字符串){
字符串电子邮件=字符串[0];
字符串密码=字符串[1];
字符串名称=字符串[2];
字符串视力受损=字符串[3];
试一试{
URL=新URL(“http://ksuexpress.com/register.php");
HttpURLConnection HttpURLConnection=(HttpURLConnection)url.openConnection();
httpURLConnection.setRequestMethod(“POST”);
httpURLConnection.setDoOutput(true);
OutputStream os=httpURLConnection.getOutputStream();
BufferedWriter BufferedWriter=新的BufferedWriter(新的OutputStreamWriter(os,“UTF-8”));
字符串数据=urlcoder.encode(“电子邮件”,“UTF-8”)+”=“+urlcoder.encode(电子邮件,“UTF-8”)+”&”+
urlcoder.encode(“密码”,“UTF-8”)+”=“+urlcoder.encode(密码,“UTF-8”)+”&”+
URLEncoder.encode(“名称”,“UTF-8”)+”=“+URLEncoder.encode(名称,“UTF-8”)+”&”+
urlcoder.encode(“视力受损”,“UTF-8”)+“=”+urlcoder.encode(视力受损,“UTF-8”);
写入(数据);
bufferWriter.flush();
bufferWriter.close();
os.close();
InputStream=httpURLConnection.getInputStream();
is.close();
返回“注册成功…”;
}捕获(格式错误){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
返回null;
}
@凌驾
受保护的void onPostExecute(字符串结果){
Toast.makeText(ctx,result,Toast.LENGTH_LONG).show();
}
}
}

我在服务器中还有一个php代码,它使用POST并将其插入数据库

有人能帮我吗…

一些可能的修复方法:

  • “=”
    更改为不带空格的
    “=”
  • doInBackground
    中添加一些日志,并确保在电子邮件、密码等中输入正确的参数
  • change
    InputStream is=httpURLConnection.getInputStream();is.close()
    to
    httpURLConnection.connect()

  • 在github上检查此项目,它完全符合您的要求,返回正确的参数,我更改=没有空格,但不工作,请参见我的新第三个建议