2

嘿伙计们,我想问一个关于使用 android 应用程序将数据发送到数据库到服务器的问题,我正在像这样通过 php 编写脚本代码。

     <?php 
            $coonect=mysql_connect("myhost of the site ","root","");
         if(!$coonect){
       echo "Data_base error";
         die(mysql_error());
         }
       ?>
       <?php
          $username=$_POST['menu_name'];
               $id=$_POST['id'];

         $db_select=mysql_select_db("TableName");
       if(!$db_select){
            die(mysql_error());
            echo" error";

     }
       $query= "INSERT INTO `DatabaseName`.`TableName` (
                   `name` ,
                    `id`
                        )
               VALUES (
                 '{$username}', '{$id}'
                        ); " ;

                  if($medo=mysql_query($query)){
             header("localhost/filename");
           exit;
               }else{
     echo"<p> Error</p>";
     die(mysql_error());
            }

               ?>

        <?php 
             mysql_close($coonect);
        ?>

和像这样在android中的action buuton中的代码。

           public void postData() {
// Create a new HttpClient and Post Header
   HttpClient httpclient = new DefaultHttpClient();
   HttpPost httppost = new HttpPost("http://mysite/script.php");

  try {
    // Add your data
    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
    nameValuePairs.add(new BasicNameValuePair("menu_name", "any data"));
    nameValuePairs.add(new BasicNameValuePair("id", "0345644"));
    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

    // Execute HTTP Post Request
    HttpResponse response = httpclient.execute(httppost);

   } catch (ClientProtocolException e) {
    // TODO Auto-generated catch block
   } catch (IOException e) {
    // TODO Auto-generated catch block
  }
     } 

我没有更改 Androidmainfest 文件中的任何内容来建立连接,我必须这样做吗?如果我应该放一些东西是什么?!!但是apk工作正常,但它根本不起作用我在我的代码中做错了什么,或者我应该在Androidmainfest中添加任何权限我不知道有什么问题???任何帮助请求

4

2 回答 2

2

据我所知,任何网络通信都需要这个

<uses-permission android:name="android.permission.INTERNET" />

在清单文件中。但我真的无法判断是否是因为这阻止了你做你的事情。也许在添加了这个之后,您可以使用终端模拟器或类似的应用程序从您的 android 设备进行 ping 测试。如果您在获取这些信息时需要帮助,请告诉我。

于 2012-05-15T02:39:43.623 回答
1

是的,您需要在清单中提供如下所示的INTERNET权限;

<uses-permission android:name="android.permission.INTERNET"/>

如果您尝试在高于 13 的 API 级别上运行 Android 程序,则必须在后台线程而不是主线程中编写连接到 Internet 的部分。

如果您在 API 级别 13 以下运行它,则无需担心在哪里编写连接部分的代码。

PS。:这是在 Android中处理HTTP POSTHTTP GET的示例

于 2012-05-15T03:21:43.077 回答