将参数传递给Android配置并将其发送到服务器

I would like to pass a parameter programmatically to the php configuration file.

The code in DbOperations.php:

function getName() {
    $stmt = $this->con->prepare("SELECT name,teamaffiliation 
    as team  FROM heroes WHERE id = 6");

    $stmt->execute();
    $stmt->bind_result($name, $team);

    $heroes = array(); 

    while($stmt->fetch()) {
        $hero  = array();
        $hero['name'] = $name; 
        $hero['team'] = $team;
        array_push($heroes, $hero); 
    }

    return $heroes; 
}

And this is my api.php:

case 'getname':
    $db = new DbOperation();
    $response['error'] = false; 
    $response['message'] = 'Request successfully completed';
    $response['heroes'] = $db->getname();
    break;

I would like to pass a value for the ID (id = x) programmatically, please help me to achieve this.

Also, I need to pass the parameter from android to php. I tried the following code, but this is also not working.

private void retrive() {
    HashMap<String, String> params = new HashMap<>();
    params.put("id", "5");
    PerformNetworkRequest request = new PerformNetworkRequest(Api.URL_READ_NAME, params, CODE_POST_REQUEST);
    request.execute();
}

For a RESTful API you could pass in the ID via GET, so your URL could look like /api.php?id=1.

Then in api.php you can access that variable using $_GET['id']; and pass it into your getname function.

Eg.

case 'getname':
    $db = new DbOperation();
    $response['error'] = false; 
    $response['message'] = 'Request successfully completed';
   $response['heroes'] = $db->getname($_GET['id']);
break;

Then in your function you can change id = 6 to id = ? and bind the parameter (?) to the variable $id using $stmt->bind_param("i", $id); The i here means that the parameter is an integer, other options are:

  • i - integer
  • d - double (float)
  • s - string
  • b - BLOB

Eg:

function getName($id){
    $stmt = $this->con->prepare("SELECT name, teamaffiliation 
    as team  FROM heroes WHERE id = ?");

    $stmt->bind_param("i", $id);

    $stmt->execute();
    $stmt->bind_result($name, $team);

    $heroes = array(); 

    while($stmt->fetch()){
        $hero  = array();

        $hero['name'] = $name; 
        $hero['team'] = $team; 


        array_push($heroes, $hero); 
    }

    return $heroes; 
}