duaijiao0648 2018-11-03 10:46
浏览 34
已采纳

将参数传递给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();
}
  • 写回答

1条回答 默认 最新

  • duannaxin9975 2018-11-03 11:09
    关注

    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; 
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么