dongti8535 2016-02-13 20:29
浏览 121
已采纳

App没有在数据库中插入任何内容

I am unable to find out what's wrong with the following, this is my php code:

<?php
include_once 'dbconnect.php';
if($_SERVER['REQUEST_METHOD']=='POST'){

$number= $_POST['number'];
$name = $_POST['name'];
$city = $_POST['city'];
$street = $_POST['street'];
$building = $_POST['building'];
$email = $_POST['email'];

$password = $_POST['pass'];

if($number=='' || $name=='' || $city=='' || $street=='' || $building=='' || $email=='' || $password=='')
{
echo 'Please Fill All Fields';
}

else {
$query = "SELECT * from account WHERE number = '$number' ";
$check = mysqli_fetch_array(mysqli_query($mysqli, $query));

if(isset($check))
{
    echo 'Account already exists';
}
else {
    $query="INSERT INTO account (number,name,city,street,building,email,password) "
            . "VALUES('$number','$name','$city','$street','$building','$email','$password')";

    if(mysqli_query($mysqli,$query)){
        echo "Succesfully Registered.";
    }

 else {
 echo 'Something went wrong, Please try again later.';
 }
}
mysqli_close($mysqli);
}

}
 else {
echo 'Error';
 }
?>

My register android class:

public class register extends AppCompatActivity implements View.OnClickListener{

EditText rgNumber,rgPass,rgName,rgCity,rgBuilding,rgStr,rgEmail,rgPass2;
Button bRegister,bCancel;

private static final String RegisterURL="http://hssolutions.tk/ibd/includes/register_user.php";
@Override
public void onClick(View v) {
    switch (v.getId()){

        case R.id.bRegister:
            String password= rgPass.getText().toString().trim();
            String password2 = rgPass2.getText().toString().trim();
            if(password.equals(password2)){
                registerUser();

            }

            else{
                showErrorMessage("Passwords don't match.");
            }

    }
}

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

    rgNumber = (EditText) findViewById(R.id.rgNumber);
    rgPass = (EditText) findViewById(R.id.rgPass);
    rgName = (EditText) findViewById(R.id.rgName);
    rgBuilding = (EditText) findViewById(R.id.rgBlding);
    rgCity = (EditText) findViewById(R.id.rgCity);
    rgStr= (EditText) findViewById(R.id.rgStr);
    rgEmail = (EditText) findViewById(R.id.rgEmail);
    rgPass2 = (EditText) findViewById(R.id.rgPass2);
    bRegister = (Button) findViewById(R.id.bRegister);
    bCancel = (Button) findViewById(R.id.bCancel);

    bRegister.setOnClickListener(this);

}

private void showErrorMessage(String error){
    AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(register.this);
    dialogBuilder.setMessage(error);
    dialogBuilder.setPositiveButton("OK", null);
    dialogBuilder.show();
}


private void registerUser(){
    String number = rgNumber.getText().toString().trim();
    String name = rgName.getText().toString().trim();
    String city = rgCity.getText().toString().trim();
    String building = rgBuilding.getText().toString().trim();
    String street= rgStr.getText().toString().trim();
    String email= rgEmail.getText().toString().trim();
    String password= rgPass.getText().toString().trim();

    register(number,name,city,building,street,email,password);
}
private void register(String number, String name, String city, String building, String street, String email, String password){

    class RegisterUser extends AsyncTask<String,Void,String>
    {
        ProgressDialog loading;
        RegisterUserClass ruc=new RegisterUserClass();

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            loading = ProgressDialog.show(register.this,"Please Wait",null,true,true);
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            loading.dismiss();
            Toast.makeText(getApplicationContext(),s,Toast.LENGTH_LONG).show();
        }

        @Override
        protected String doInBackground(String... params) {

            HashMap<String,String> data=new HashMap<String,String>();
            data.put("number",params[0]);
            data.put("name",params[1]);
            data.put("city",params[2]);
            data.put("street",params[3]);
            data.put("building",params[4]);
            data.put("email",params[5]);
            data.put("pass",params[6]);

            String result = ruc.sendPostRequest(RegisterURL,data);
            return result;

        }
    }

    RegisterUser ru= new RegisterUser();
    ru.execute(number,name,city,street,building,email,password);
}
}

and the registration class which should send the requests:

public class RegisterUserClass {

public String sendPostRequest(String requestURL, HashMap<String, String> postDataParams){
    URL url;
    String response= "";

    try
    {
        url= new URL(requestURL);

        HttpURLConnection con= (HttpURLConnection)url.openConnection();
        con.setReadTimeout(15000);
        con.setConnectTimeout(15000);
        con.setRequestMethod("POST");
        con.setDoInput(true);
        con.setDoOutput(true);

        OutputStream os= con.getOutputStream();
        BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(os,"UTF-8"));

        writer.write(getPostDataString(postDataParams));
        writer.flush();
        writer.close();

        os.close();

        int responseCode = con.getResponseCode();
        if(responseCode == HttpURLConnection.HTTP_OK)
        {
            BufferedReader reader= new BufferedReader(new InputStreamReader(con.getInputStream()));
            response=reader.readLine();
        }
    }
    catch (Exception e)
    {
        e.printStackTrace();
    }

    return response;
}

private String getPostDataString(HashMap<String,String> params) throws UnsupportedEncodingException
{
    StringBuilder result= new StringBuilder();
    boolean first = true;
    for(Map.Entry<String,String> entry:params.entrySet()){
        if(first)
        {
            first=false;
        }
        else
        {
            result.append("&");
        }

        result.append(URLEncoder.encode(entry.getKey(),"UTF-8"));
        result.append("=");
        result.append(URLEncoder.encode(entry.getValue(),"UTF-8"));
    }

    return result.toString();
}
}

The application isnt showing an error, but the toast returns empty, while the database gets nothing inserted to it, i traced the code logically but still unable to find the error.

  • 写回答

1条回答 默认 最新

  • duanjiwei1283 2016-02-13 20:38
    关注

    in here, assuming the only line might be problem,

    if(responseCode == HttpURLConnection.HTTP_OK)
        {
            BufferedReader reader= new BufferedReader(new InputStreamReader(con.getInputStream()));
            response=reader.readLine();
        }
    

    can you change to this:

    if (responseCode == HttpsURLConnection.HTTP_OK) {
                String line;
                BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
                while ((line = br.readLine()) != null) {
                    response += line;
                }
            } else {
                response = null;
    
            }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 spring后端vue前端
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题