从PHP服务器的数据转换到Android失败 [英] Conversion of data from php server to android failed

查看:161
本文介绍了从PHP服务器的数据转换到Android失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有没有编码的这部分错误?我不明白的地方是特定的问题。正如我的结果= NULL。传递给PHP和获取PHP服务器的答复之后。因为它应该是没有检索数据。调试出来的错误,应用程序的工作,但它只是我的编程,它做的不是运行...是否有任何人都可以看到这部分的循环孔?

 的BufferedReader读者=新的BufferedReader(新的InputStreamReader(是,ISO-8859- 1),8);                SB =新的StringBuilder();                sb.append(reader.readLine()+\\ n);                串行=0;                而((行= reader.readLine())!= NULL){                sb.append(行+\\ n);
                }
                is.close();
                结果= sb.toString();

PHP的编码方
     

  $ DB_HOST =localhost的;
 $ db_username =根;
 $ DB_PASS =trickster911;
 $ DB_NAME =track_database; @mysql_connect($ DB_HOST,$ db_username,$ DB_PASS)或死亡(无法连接到数据库);
 @mysql_select_db($ DB_NAME);
 $ IMEI = $ _ POST ['code3'];
 $ SQL =(选择经度,纬度从赛道上的IMEI =('$ IMEI'))或死亡(mysql_error());
 $结果= mysql_query($的SQL);
 如果($结果){
 回声Y;
 } 其他{
 回声N;
 }
 $输出=阵列();
  而($行= mysql_fetch_assoc($结果))
  $输出[] = $行;
   打印(json_en code($输出));
   mysql_close(); ?>

调试后,

  JSONTokener.nextCleanInternal()行:112
 JSONTokener.nextValue()行:90
 。JSONObject的<&初始化GT;(JSONTokener)线:154
 。JSONObject的<&初始化GT;(字符串)行:171
 跟踪$ 1.onClick(视图)行:119
 按钮(查看).performClick()行:2408
 查看$ PerformClick.run()行:8816
 的ViewRoot(处理器).handleCallback(消息)线:587
 的ViewRoot(处理器).dispatchMessage(消息)行:92
 Looper.loop()行:123
 ActivityThread.main(字符串[])行:4627
 Method.invokeNative(对象,对象[],上课,下课[],类,整型,布尔)行:不可用[本机方法]
 Method.invoke(对象,对象...)线:521
 ZygoteInit $ MethodAndArgsCaller.run()行:868
 ZygoteInit.main(字符串[])线:626
 NativeStart.main(字符串[])行:不可用[本机方法]


解决方案

而不是:

  $ SQL =(选择经度,纬度从赛道上的IMEI =('$ IMEI'))或死亡(mysql_error());

试试这个:

  $ SQL =(选择经度,纬度从赛道上的IMEI =$ IMEI。')或死亡(mysql_error());

我不知道,但也许你的问题是因为这个原因。请给一些反馈,如果它解决您的问题或没有。

Is there an error in this part of coding? I don't understand where is the specific problem. As my result = null. After passing to the php and getting the php server reply. It didn't retrieve the data as it should. Debugging comes out no error, application is working but it just doesn't run as what I programmed it to do... Is there anyone can see any loop holes from this part?

    BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-    1"),8);

                sb = new StringBuilder();

                sb.append(reader.readLine() + "\n");

                String line="0";

                while ((line = reader.readLine()) != null) {

                sb.append(line + "\n");
                }
                is.close();
                result=sb.toString();

The PHP coding side

 $db_host = "localhost";
 $db_username = "root";
 $db_pass = "trickster911";
 $db_name = "track_database";

 @mysql_connect("$db_host","$db_username","$db_pass") or die ("Could not connect to database");
 @mysql_select_db("$db_name");


 $imei = $_POST['code3'];


 $sql=("SELECT latitude, longitude FROM track WHERE imei = ('$imei')") or die (mysql_error());
 $result=mysql_query($sql);


 if($result){
 echo "Y";
 }

 else {
 echo "N";
 }
 $output = array();
  while($row=mysql_fetch_assoc($result))    
  $output[]=$row;
   print(json_encode($output));
   mysql_close();

 ?>

After debugging,

 JSONTokener.nextCleanInternal() line: 112  
 JSONTokener.nextValue() line: 90   
 JSONObject.<init>(JSONTokener) line: 154   
 JSONObject.<init>(String) line: 171    
 Tracking$1.onClick(View) line: 119 
 Button(View).performClick() line: 2408 
 View$PerformClick.run() line: 8816 
 ViewRoot(Handler).handleCallback(Message) line: 587    
 ViewRoot(Handler).dispatchMessage(Message) line: 92    
 Looper.loop() line: 123    
 ActivityThread.main(String[]) line: 4627   
 Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not      available [native method]    
 Method.invoke(Object, Object...) line: 521 
 ZygoteInit$MethodAndArgsCaller.run() line: 868 
 ZygoteInit.main(String[]) line: 626    
 NativeStart.main(String[]) line: not available [native method] 

解决方案

instead of:

$sql=("SELECT latitude, longitude FROM track WHERE imei = ('$imei')") or die (mysql_error());

try this:

$sql=("SELECT latitude, longitude FROM track WHERE imei = '".$imei."'") or die (mysql_error());

I'm not sure but maybe your problem is because of this. Please give some feedback if it fixes your problem or not.

这篇关于从PHP服务器的数据转换到Android失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆