Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 作为整数传递的字符串_Java_Php_Android_Mysql - Fatal编程技术网

Java 作为整数传递的字符串

Java 作为整数传递的字符串,java,php,android,mysql,Java,Php,Android,Mysql,我正在制作一个Android应用程序,其中有一个注册页面,可以将用户保存到数据库中。但由于某些原因,用户名部分一直以整数形式发送(如果我输入字符串,它将发送“0”,如果输入数字,它将发送正确的数字),但该值声明为字符串 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_re

我正在制作一个Android应用程序,其中有一个注册页面,可以将用户保存到数据库中。但由于某些原因,用户名部分一直以整数形式发送(如果我输入字符串,它将发送“0”,如果输入数字,它将发送正确的数字),但该值声明为字符串

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);

        final EditText etName = (EditText) findViewById(R.id.etName);
        final EditText etUsername = (EditText) findViewById(R.id.etUsername); //This variable here
        final EditText etEmail = (EditText) findViewById(R.id.etEmail);
        final EditText etPassword = (EditText) findViewById(R.id.etPassword);

        final Button bRegister = (Button) findViewById(R.id.bRegister);

        bRegister.setOnClickListener(new View.OnClickListener(){
           @Override
            public void onClick(View v) {
               final String name = etName.getText().toString();
               final String username = etUsername.getText().toString();
               final String email = etEmail.getText().toString();
               final String password = etPassword.getText().toString();

               Response.Listener<String> responseListener = new Response.Listener<String>(){

                   @Override
                   public void onResponse(String response){
                       try {
                           JSONObject jsonResponse = new JSONObject(response);
                           boolean success = jsonResponse.getBoolean("success");

                           if (success){
                               Intent intent = new Intent(RegisterActivity.this, LoginActivity.class);
                               RegisterActivity.this.startActivity(intent);
                           }
                           else{
                               AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this);
                               builder.setMessage("Registration Failed")
                                       .setNegativeButton("Retry", null)
                                       .create()
                                       .show();
                           }
                       }
                       catch(JSONException E){
                           E.printStackTrace();
                       }
                   }

               };
               RegisterRequest registerRequest = new RegisterRequest( name,username, email,password,responseListener);
               RequestQueue queue = Volley.newRequestQueue(RegisterActivity.this);
               queue.add(registerRequest);
           }
        });
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u寄存器);
最终EditText etName=(EditText)findViewById(R.id.etName);
final EditText etUsername=(EditText)findViewById(R.id.etUsername);//此处为该变量
最终的EditText-etEmail=(EditText)findViewById(R.id.etEmail);
最终EditText etPassword=(EditText)findViewById(R.id.etPassword);
最终按钮b注册表=(按钮)findViewById(R.id.b注册表);
bRegister.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
最终字符串名称=etName.getText().toString();
最终字符串username=etUsername.getText().toString();
最终字符串email=etEmail.getText().toString();
最终字符串password=etPassword.getText().toString();
Response.Listener responseListener=新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
试一试{
JSONObject jsonResponse=新的JSONObject(响应);
boolean success=jsonResponse.getBoolean(“success”);
如果(成功){
意向意向=新意向(RegisterActivity.this、LoginActivity.class);
RegisterActivity.this.startActivity(意向);
}
否则{
AlertDialog.Builder=新建AlertDialog.Builder(RegisterActivity.this);
builder.setMessage(“注册失败”)
.setNegativeButton(“重试”,null)
.create()
.show();
}
}
捕获(JSONException E){
E.printStackTrace();
}
}
};
RegisterRequest RegisterRequest=新的RegisterRequest(名称、用户名、电子邮件、密码、响应侦听器);
RequestQueue=Volley.newRequestQueue(RegisterActivity.this);
添加(registerRequest);
}
});
请求:

public class RegisterRequest extends StringRequest {

    private static final String REGISTER_REQUEST_URL = "server link";
    private Map<String, String> params;

    public RegisterRequest(String name, String username, String email, String password, Response.Listener<String> listener){

        super(Method.POST, REGISTER_REQUEST_URL,listener, null);
        params = new HashMap<>();
        params.put("name", name);
        params.put("username", username);
        params.put("email", email);
        params.put("password", password);

    }

    @Override
    public Map<String, String> getParams() {
        return params;
    }
}
公共类RegisterRequest扩展了StringRequest{
专用静态最终字符串寄存器\u请求\u URL=“服务器链接”;
私有映射参数;
公共注册表请求(字符串名称、字符串用户名、字符串电子邮件、字符串密码、响应.侦听器){
super(Method.POST,REGISTER\u REQUEST\u URL,listener,null);
params=新的HashMap();
参数put(“名称”,名称);
参数put(“用户名”,用户名);
参数put(“电子邮件”,电子邮件);
参数put(“密码”,密码);
}
@凌驾
公共映射getParams(){
返回参数;
}
}



我知道这可能会是一件非常愚蠢的事情,但我已经花了两天的时间试图弄清楚这一点。

php在哪里?你能为用户名显示EditText的布局定义吗?作为第一步,你应该检查(调试?)你的Android代码,看看是否发送了正确的用户名,然后检查(调试?)你的后端代码,看看它是否在数据库中存储了正确的用户名,如果还可以,那么检查你的数据库模式。现在我们所能做的就是猜测你的错误在哪里。(好吧,我们可以研究Android代码,但我看不出问题出在哪里。)@egg布局定义与其他布局定义相同,但在调试时,无论如何都会看到字符串,因此不能是problem@MarkusKauppinen我对其进行了调试,并发送了正确的字符串。db模式与其他字段相同。php在哪里?能否显示用户名的EditText的布局定义?作为第一步你应该检查(调试?)你的Android代码,看看是否发送了正确的用户名,然后检查(调试?)你的后端代码,看看它是否在数据库中存储了正确的用户名,如果在那一点上还可以,然后检查你的数据库模式。现在我们所能做的就是猜测你的错误在哪里。(好吧,我们可以研究Android代码,但我看不出问题出在哪里。)@egg布局定义与其他布局定义相同,但在调试时可以看到字符串,因此这不是问题所在problem@MarkusKauppinen我对其进行了调试,并发送了正确的字符串。其他字段的db模式相同。
<?php
   $con=mysqli_connect("localhost","username","password","dbname");

    $name=$_POST["name"];
    $username = $_POST["username"];
    $email = $_POST["email"];
    $password = $_POST["password"];

    $statement = mysqli_prepare($con, "INSERT INTO user (name, username, email, password) VALUES (?, ?, ?, ?)");
    mysqli_stmt_bind_param($statement, "siss",$name, $username, $email, $password );
    mysqli_stmt_execute($statement);

    $response = array();
    $response["success"] = true;  

    echo json_encode($response);
?>