在Android中将数据发送到数据库服务器

时间:2012-05-15 02:34:47

标签: php android android-emulator

嘿伙计们我想问一个关于使用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中的动作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中放任何许可我不知道什么是错的???任何帮助请求

2 个答案:

答案 0 :(得分:2)

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

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

清单文件中的

。但我无法确定是否是因为这会阻止你做你的事情。也许在添加这个之后,您可以使用终端模拟器或类似的应用程序从您的Android设备进行ping测试。如果您需要帮助来获取这些信息,请与我们联系。

答案 1 :(得分:1)

是的,你需要在Manifest中给出如下所示的 INTERNET 权限;

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

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

如果您在API级别13以下运行它,则无需担心连接部件的编码位置。

PS。 :这是在Android

中处理HTTP POSTHTTP GET的示例