首页 > 解决方案 > 如何使用 php android volly 将数据输入到我的 sql 中?

问题描述

该应用程序正在与 api 连接,但数据未输入到数据库中,它在不安全成功时出现错误消息。

如何解决?

这是我的register.php代码。

if ($_SERVER['REQUEST_METHOD'] =='POST') {

$fname = $_POST['fname'];
$lname = $_POST['lname'];
$emailid = $_POST['email'];
$password = $_POST['password'];
$cpassword = $_POST['cpassword'];

$password = password_hash($password, PASSWORD_DEFAULT);

require_once 'uconnection.php';

$sql = "INSERT INTO user (firstname, lastname, email, password, confirmpassword) VALUES ('$fname', '$lname', '$emailid', '$cpassword')";

if ( mysqli_query($conn, $sql) ) {
    $result["success"] = "1";
    $result["message"] = "success";

    echo json_encode($result);
    mysqli_close($conn);

} else {

    $result["success"] = "0";
    $result["message"] = "error";

    echo json_encode($result);
    mysqli_close($conn);
}

}

这是我的 android 应用程序的 android mainactivity 代码。

public class MainActivity extends AppCompatActivity {

private EditText fname,lname,emailid,password,cpassword;
private Button buttonregister;
private ProgressDialog pDialog;


private static String URL_REGISTER = "http://192.168.68.74:80/loginregistervollyphp/register.php";

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

    fname = findViewById(R.id.edtxt_fname);
    lname = findViewById(R.id.edtxt_lname);
    emailid = findViewById(R.id.edtxt_emailid);
    password = findViewById(R.id.edtxt_password);
    cpassword = findViewById(R.id.edtxt_cpassword);
    buttonregister = findViewById(R.id.btn_r_signup);

    buttonregister.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
                register_user();

        }
    });

}

/**
 * Display Progress bar while registering
 */
private void displayLoader() {
    pDialog = new ProgressDialog(MainActivity.this);
    pDialog.setMessage("Signing Up.. Please wait...");
    pDialog.setIndeterminate(false);
    pDialog.setCancelable(false);
    pDialog.show();

}

private void register_user(){
    displayLoader();

    final String fname = this.fname.getText().toString().trim();
    final String lname = this.lname.getText().toString().trim();
    final String emailid = this.emailid.getText().toString().trim();
    final String password = this.password.getText().toString().trim();
    final String cpassword = this.cpassword.getText().toString().trim();

    StringRequest stringRequest = new StringRequest(Request.Method.POST, URL_REGISTER,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    pDialog.dismiss();
                    try {
                        JSONObject jsonObject = new JSONObject(response);
                        String success = jsonObject.getString("success");
                        Log.d("sucs",success);

                        if (success.equals("1")){
                            Toast.makeText(MainActivity.this, "Register Successful :) ", Toast.LENGTH_SHORT).show();
                        }
                        else if (success.equals("0")){
                            Toast.makeText(MainActivity.this, "Register Error!", Toast.LENGTH_SHORT).show();
                        }

                    } catch (JSONException e) {
                        e.printStackTrace();
                        Toast.makeText(MainActivity.this, "Register Error :( "+ e.toString(), Toast.LENGTH_SHORT).show();
                    }

                }

            },

            new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            pDialog.dismiss();

            Toast.makeText(MainActivity.this, "Register Error :("+ error.toString(), Toast.LENGTH_SHORT).show();
        }
    })
    {
        @Override
        protected Map<String, String> getParams() throws AuthFailureError {
            Map<String, String> params = new HashMap<>();
            params.put("fname",fname);
            params.put("lname",lname);
            params.put("email",emailid);
            params.put("password",password);
            params.put("cpassword",cpassword);
            return params;
        }
    };
    RequestQueue requestQueue = Volley.newRequestQueue(this);
    requestQueue.add(stringRequest);

}

标签: javaphp

解决方案


在您的代码中进行如下更改:

header("Content-Type: application/json"); //add this in your php code 

if ( mysqli_query($conn, $sql) ) {
    $result["success"] = "1";
    $result["message"] = "success";



} else {

    $result["success"] = "0";
    $result["message"] = "error";

}

   echo json_encode($result);
    mysqli_close($conn);

推荐阅读