0

これは、リモート サーバーに格納されている MySQL データベースと Android アプリをやり取りさせる最初の試みです。この時点でやろうとしているのは、単一のレコードを空のリモート テーブルに挿入することだけです。基本的に、接続を確立して非常に単純なデータを書き込もうとしています。

エラーは発生していませんが、これを実行した後もテーブルは空のままです。私は何を間違っていますか???

/my_db/test.php

    include('connection.php');

    $name='dummy';

    $sql = "INSERT INTO test (name) VALUES ('$name')";
    $result = mysql_query($sql);

    if(!$result) {return -1;}

    return 1;
?>

これは私のアクティビティの onCreate 関数にあります:

btnRegister.setOnClickListener(new View.OnClickListener() {         
    public void onClick(View view) {

        //Avoiding threading issues for the moment
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy); 

        DefaultHttpClient httpclient = new DefaultHttpClient();
        String testURL = context.getResources().getString(R.string.dbURL) + "my_db/test.php";
        System.err.println(testURL); //output looks good 'http://XXX.XXX.XXX.XXX/my_db/test.php'
        HttpPost httppost = new HttpPost(testURL);

        try
        {
            //not actually using the passed parameter for now
            ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
            nameValuePairs.add(new BasicNameValuePair("name", inputFullName.getText().toString()));

            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            HttpResponse response = httpclient.execute(httppost);
            System.err.println("done");
        }
        catch(Exception e)
        {
            System.err.println("error");
            e.printStackTrace();
        }
    }
});
4

2 に答える 2

1

まず、mysql_close(); を追加します。データベース操作が完了した後に接続を閉じる必要があるため、php で、そうしないと、システムリソースが占有されます。

次に、応答が 1 または -1 の場合は応答に注意してください。-1 の場合は、PHP 側で調査する必要がある場合があります。

于 2013-08-04T16:38:21.450 に答える
1

コードが実際にサーバー側に接続しているように見えるため、サーバーの応答または http 応答を確認することができますが、サーバー側はクエリの実行に失敗しました。まず、Web ブラウザーでサーバー側を試してみてください。

于 2013-08-04T16:42:13.080 に答える