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:
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;
}