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);
        ?>

そして、このようなアンドロイドのアクション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"/>

API レベル 13 以上で Android プログラムを実行しようとしている場合は、インターネットへの接続部分をメイン スレッドではなくバックグラウンド スレッドでコーディングする必要があります。

API レベル 13 未満で実行する場合は、接続部分をどこにコーディングするかについて心配する必要はありません。

PS。: これは、 Android でHTTP POSTおよびHTTP GETを処理するための例です。

于 2012-05-15T03:21:43.077 に答える