0

2 つの EditText と [保存] ボタンを持つサンプル Android アプリを開発しています。EditTexts からデータを取得し、PHP を使用して MySQL サーバーに投稿します。コードは打撃です。

データを保存するための onClick メソッド

 public void saveMy(View v)
{
    name=e1.getText().toString();
    no=e2.getText().toString();
    try {
            httpclient = new DefaultHttpClient();
            httppost = new HttpPost("http://10.0.2.2/GujaratiApp/myPHP.php");


            ArrayList<NameValuePair> postParameters = new ArrayList<NameValuePair>();
                    postParameters.add(new BasicNameValuePair("Name",name));
            postParameters.add(new BasicNameValuePair("No",no));
            httppost.setEntity(new UrlEncodedFormEntity(postParameters));

            HttpResponse response = httpclient.execute(httppost);
            Log.i("postData", response.getStatusLine().toString());
        }
    catch(Exception ex)
    {
        Log.e("log_tag", "Error:  "+ex.toString());
    }  


}

PHPコードは次のとおりです。

<?php 
mysql_connect("localhost","root","") or die(mysql_error());
mysql_select_db("newDB");
$name =   $_POST['Name'];
$no = $_POST['No'] ;

$query_add="INSERT INTO  myData (`name` ,`no` ) VALUES ('.$name','.$no')";


$query_exec=mysql_query($query_add) or die(mysql_error()); 


mysql_close();

?>

[保存] ボタンをクリックすると、LogCat に HTTP/1.1 200 OK というメッセージが表示されます。また、MySQL モニターでクエリを実行すると、テーブルに 1 行追加されますが、追加された行には何も表示されません。下の画像を参照してください。ここに画像の説明を入力

何がうまくいかないのかわかりません。助けてください。

前もって感謝します。

4

1 に答える 1

0

フィールドを必須にして、mySQL の列に null チェックを追加してください。

ALTER TABLE myData Modify name varchar(xyz) NOT NULL;
ALTER TABLE myData Modify no varchar(abc) NOT NULL;

その後、応答ステータス 200 を取得しているかどうかを確認してください。これにより、投稿パラメータがサービスで正しく受信されているかどうかが確認されます。そうでない場合は、これらのパラメーターを URL に追加して、URL 自体を介して渡すことができます。

httpclient = new DefaultHttpClient();
httppost = new HttpPost("http://10.0.2.2/GujaratiApp/myPHP.php?name=" + name + "&no=" + no);
HttpResponse response = httpclient.execute(httppost);

もしそうなら、それはあなたを動かすはずです

UrlEncodedFormEntity(postParameters)

動かない。

于 2012-08-19T05:59:29.430 に答える