简体   繁体   English

将PHP与Android连接,检查Mysql数据库中是否存在值

[英]Connecting PHP with Android check if value exists in Mysql Database

First of all my php script: 首先我的PHP脚本:

<?php

/*
 * Following code will update a product information
 * A product is identified by product id (pid)
 */

// array for JSON response
$response = array();


    // include db connect class
    require_once __DIR__ . '/db_connect.php';

    // connecting to db
    $db = new DB_CONNECT();

// check for required fields
if (isset($_POST['uid']) && isset($_POST['name'])) {

    $uid = $_POST['uid'];
    $name = $_POST['name'];

    $look = mysql_query("SELECT name FROM users WHERE name ='$name'");
    if(mysql_num_rows($look) == 0){

    // mysql update row with matched pid
    $result = mysql_query("UPDATE users SET name = '$name' WHERE uid = $uid");



    // check if row inserted or not
    if ($result) {
        // successfully updated
        $response["success"] = 1;
        $response["message"] = "Product successfully updated.";

        // echoing JSON response
        echo json_encode($response);
    } else {

    }
} else {

    $response["success"] = 2;
    $response["message"] = "Email already exists! :-(";
}
} else {
    // required field is missing
    $response["success"] = 0;
    $response["message"] = "Required field(s) is missing";

    // echoing JSON response
    echo json_encode($response);
}

?>

So I check if the name already exists. 因此,我检查名称是否已经存在。 If yes then is the "success" equals to 2 and if not then is it equals to 0 and the row should be updated. 如果是,则“成功”等于2,如果不是,则等于0,并且应该更新该行。 But I get an Error in Android. 但我在Android中遇到错误。 If the name don't already exists, it works fine, but if the value exists then the app crashed.. Here is the Async-Task class from Android: 如果名称不存在,则可以正常工作,但是如果该名称存在,则应用程序崩溃。。这是来自Android的Async-Task类:

/**
 * Background Async Task to  Save product Details
 */
class SaveProductDetails extends AsyncTask<String, String, String> {

    /**
     * Before starting background thread Show Progress Dialog
     */
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        Toast.makeText(getApplicationContext(), "saving..", Toast.LENGTH_SHORT).show();
        // Displays the progress bar for the first time.
        mBuilder.setProgress(100, 0, true);
        mNotifyManager.notify(id, mBuilder.build());
    }

    /**
     * Saving product
     */
    protected String doInBackground(String... args) {

        // getting updated data from EditTexts
        String name = editTextUserName.getText().toString();

        // Building Parameters
        List<NameValuePair> params = new ArrayList<NameValuePair>();
        params.add(new BasicNameValuePair(StaticVariables.UID, idOfCustomer));
        params.add(new BasicNameValuePair(StaticVariables.NAME, name));

        // sending modified data through http request
        // Notice that update product url accepts POST method
        JSONObject json = jsonParser.makeHttpRequest(StaticVariables.url_update_username,
                "POST", params);

        // check json success tag
        try {
            int success = json.getInt(StaticVariables.TAG_SUCCESS);

            if (success == 1) {
                // successfully updated
                Intent i = getIntent();
                // send result code 100 to notify about product update
                setResult(100, i);
                finish();
            } else if (success == 2) {
                // failed to update product
                Toast.makeText(getApplicationContext(), json.getString("message"), Toast.LENGTH_SHORT).show();
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }

        return null;
    }

    /**
     * After completing background task Dismiss the progress dialog
     **/
    protected void onPostExecute(String file_url) {
        // dismiss the dialog once product uupdated
        // dismiss the dialog once product uupdated
        Toast.makeText(getApplicationContext(), "succesfully", Toast.LENGTH_SHORT).show();
        mBuilder.setContentText("Upload complete");
        // Removes the progress bar
        mBuilder.setProgress(0, 0, false);
        mNotifyManager.notify(id, mBuilder.build());
        finish();
    }
}

You missing: 你错过了:

echo json_encode($response);

in this case: 在这种情况下:

else {

    $response["success"] = 2;
    $response["message"] = "Email already exists! :-(";
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM