如何从android传递变量到php查询?

时间:2013-06-30 14:33:36

标签: php android json

我需要从包含数千个项目的外部数据库中读取数据。到目前为止我所做的是我编写了返回所有项目的php查询,然后用JSON解析它们。像这样:

PHP:

   $stmt = $conn->prepare("SELECT COMMENT_ID, USERNAME, COMMENT, DATE, LINK, NOW() AS SERVERTIME FROM COMMENTROOM ORDER BY DATE DESC");
   $stmt -> execute(array($link));
   while($row = $stmt->fetchAll(PDO::FETCH_ASSOC)) {
        $output[] = $row;
   }
   print(json_encode($output));  

机器人:

    JSONArray jArray = new JSONArray(commentResult);

    for(int i=0;i<jArray.length();i++){
      JSONArray innerJsonArray = jArray.getJSONArray(i);
      for(int j=0;j<innerJsonArray.length();j++){
        JSONObject jsonObject = innerJsonArray.getJSONObject(j);

        if (jsonObject.getString("LINK").equals(GlobalVars.getLINK_FOR_COMMENT())){
            Comment.add(jsonObject.getString("COMMENT"));
        }
      }
    }

这很有效,但我不认为这是有效的,特别是如果表包含数万个项目。 所以我想以某种方式将link变量传递给php查询,因此选择过程将由sql完成,而不是通过JSON解析,这要慢很多。 新的php:

$link = $_POST['link'];
    try {
        $stmt = $conn->prepare("SELECT COMMENT_ID, USERNAME, COMMENT, DATE, NOW() AS SERVERTIME FROM COMMENTROOM WHERE LINK=? ORDER BY DATE DESC");
        $stmt -> execute(array($link));
        while($row = $stmt->fetchAll(PDO::FETCH_ASSOC)) {
            $output[] = $row;
        }
        print(json_encode($output));

我的问题是如何将link变量从android传递给此php查询,以便查询只返回正确的项目而我不必解析结果?

提前致谢!

0 个答案:

没有答案