0

アンドロイド部分

final ProgressDialog p = new ProgressDialog(arg0.getContext()).show(arg0.getContext(),"Waiting for Server", "Accessing Server");
        Thread thread = new Thread()
        {
            @Override
            public void run() {
                   try{

                     httpclient=new DefaultHttpClient();
                     httppost= new HttpPost("http://www.ng.in/m/z.php"); 

                     nameValuePairs = new ArrayList<NameValuePair>(1);
                     nameValuePairs.add(new BasicNameValuePair("z_101","3"));
                     nameValuePairs.add(new BasicNameValuePair("uname",info));
                     nameValuePairs.add(new BasicNameValuePair("bill",""+bill));
                     httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                     //Execute HTTP Post Request
                     response=httpclient.execute(httppost);

                     ResponseHandler<String> responseHandler = new BasicResponseHandler();
                     final String response = httpclient.execute(httppost, responseHandler);
                     System.out.println("Response : " + response);
                     runOnUiThread(new Runnable() {
                            public void run() {
                                p.dismiss();
                              pay.append(response);   
                            }

                           });


                 }catch(Exception e){

                     e.printStackTrace();
                 }
            }
        };

        thread.start();

Php コード:-

 <?php
require "connect.inc.php";
$uname=$_POST['uname'];
$bill=(int)$_POST['bill'];
$z_101=(int)$_POST['z_101'];
$rest="z";
$query1="insert into mc_log (uname,rname,bill) values ('$uname','$rest','$bill')";
$result1=mysql_query($query1);
?>

実行するたびに、同じ値を持つ 2 つの行が mc_log テーブルに挿入されます。mc_log テーブルには、さらに 2 つの列 i) プライマリ キーである id と、auto_increamented ii) デフォルトの systime である time があります。

4

1 に答える 1

2

このコードは二重に見えます:

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

ResponseHandler<String> responseHandler = new BasicResponseHandler();
fnal String response = httpclient.execute(httppost, responseHandler);

あなたはexecute()2回電話をかけています、それが問題です...

于 2013-03-18T23:05:14.957 に答える