2013-02-14 45 views
0

I'm检索从外部数据库值到一个Android应用程序做的是这样的服务器上的服务的调用检索。这里的php文件:检查空值从外部服务

$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); 

if (!$mysqli) { 
    die('Connect Error (' . mysqli_connect_errno() . ') ' . sqli_connect_error()); 
} 

$q=mysqli_query($mysqli, "SELECT title FROM post WHERE UPPER(title) LIKE UPPER('%" . $_REQUEST['searchThis'] . "%')"); 

while($e=mysqli_fetch_assoc($q)){ 
    $output[]=$e; 
} 

print(json_encode($output)); 
mysqli_close(); 

这是我的班做什么(我只是写的事项的代码):

try{ 
    HttpClient httpclient = new DefaultHttpClient(); 
    HttpPost httppost = new HttpPost(URL); 
    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
    HttpResponse response = httpclient.execute(httppost); 
    HttpEntity entity = response.getEntity(); 
    is = entity.getContent(); 
} 
catch(Exception e){ 
    Log.e("CONNECTION_ERROR", "Error in http connection "+e.toString()); 
} 

try{ 
    BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8); 
    StringBuilder sb = new StringBuilder(); 
    String line = null; 
    while ((line = reader.readLine()) != null) { 
     sb.append(line + "\n"); 
    } 
    is.close(); 
    result=sb.toString(); 

     ///-------------SYSTEM OUTS--------------- 

    System.out.println(result); 
    System.out.println(result.getClass().getName()); 
} 
catch(Exception e){ 
    Log.e("BUFFER_ERROR", "Error converting result "+e.toString()); 
} 

//------------------PROBLEMS--------------- 
if(result.equalsIgnoreCase("null")){ 
    list.add("empty"); 
} 

else{ 
    try{ 
     JSONArray jArray = new JSONArray(result); 
     for(int i=0;i<jArray.length();i++){ 
      JSONObject json_data = jArray.getJSONObject(i); 
      //Log.i("result",json_data.getString("title")); 
      String title = json_data.getString("title"); 
      list.add(title); 
     } 
    } 
    catch(JSONException e){ 
     Log.e("DATA_PARSING_ERROR", "Error parsing data "+e.toString()); 
    } 
} 
return list; 

}

我试过白衣日志和打印和就是我得到的是:

null //FOR System.out.println(result); 
java.lang.String //for System.out.println(result.getClass().getName()); 

在服务器上的PHP服务返回的东西它的工作原理,但问题是,当我将结果与“null”进行比较,即使结果是值为“null”的字符串,也始终为false。当然,我遇到了JSON异常,因为结果不是有效的转换格式。这里可能有什么错误?

回答

2

您的代码似乎并没有考虑你附加尾随换行符(“\ n”)。

您可以删除换行符(“\ n”)的追加while循环或当您检查“空”将其删除。

+0

最愚蠢的mystake永远...谢谢。 – 2013-02-14 15:26:18