1

私は現在、php と mysql を使用した Android アプリケーションを持っていますが、私の問題は、php に渡されて mysql に保存されたときに、コードが経度と緯度の両方で常に 0.000000 をスローすることです。

これは私のコードでした

**

class myLocationlistener  implements LocationListener {
        @Override
        public void onLocationChanged(Location location) {
            if (location != null) {
                double pLong = location.getLongitude();
                double pLat = location.getLatitude();
                textLat.setText(Double.toString(pLat));
                textLong.setText(Double.toString(pLong));
            }
        }
        @Override
        public void onProviderDisabled(String provider) {
            // TODO Auto-generated method stub
        }
        @Override
        public void onProviderEnabled(String provider) {
            // TODO Auto-generated method stub
        }
        @Override
        public void onStatusChanged(String provider, int status, Bundle extras) {
            // TODO Auto-generated method stub
        }
    }

    class CreateNewProduct extends AsyncTask<String, String, String> {

        /**
         * Before starting background thread Show Progress Dialog
         * */
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            pDialog = new ProgressDialog(Sample.this);
            pDialog.setMessage("Sending Location");
            pDialog.setIndeterminate(false);
            pDialog.setCancelable(true);
            pDialog.show();
        }

        /**
         * Creating product
         * */
        protected String doInBackground(String... args) {
            String latitude = textLong.getText().toString();
            String longitude = textLat.getText().toString();

            // Building Parameters
            List<NameValuePair> params = new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair("latitude", latitude));
            params.add(new BasicNameValuePair("longitude", longitude));

            // getting JSON Object
            // Note that create product url accepts POST method
            JSONObject json = jsonParser.makeHttpRequest(url_create_product,
                    "POST", params);

            // check log cat fro response
            Log.d("Create Response", json.toString());

            // check for success tag
            try {
                int success = json.getInt(TAG_SUCCESS);

                if (success == 1) {
                    // successfully created product
                    Intent i = new Intent(getApplicationContext(), Echos.class);
                    startActivity(i);

                    // closing this screen
                    finish();
                } else {
                    // failed to create product
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }

            return null;
        }

**

これはphp用でした

**

if ($_POST['latitude'] && $_POST['longitude'] != null) {
    $db_connect = mysql_connect($db_host, $db_user, $db_password) or die(mysql_error());
    $db = mysql_select_db($db_name);
    $latitude = $_POST['latitude'];
    $longitude = $_POST['longitude'];

    // mysql inserting a new row
    $result = mysql_query("INSERT INTO gpslocation(latitude, longitude) VALUES('latitude', 'longitude')");


    // check if row inserted or not
    if ($result) {
        // successfully inserted into database
        $response["success"] = 1;
        $response["message"] = "Product successfully created.";

        // echoing JSON response
        echo json_encode($response);
    } else {
        // failed to insert row
        $response["success"] = 0;
        $response["message"] = "Oops! An error occurred.";

        // echoing JSON response
        echo json_encode($response);
    }
} else {
    // required field is missing
    $response["success"] = 0;
    $response["message"] = "Required field(s) is missing";

    // echoing JSON response
    echo json_encode($response);
}

**

誰かがこれについて何か知っている場合は、ここで親切に答えてください。または、私の質問を誤解させているかどうか教えてください.

4

1 に答える 1

2

問題は PHP コードにあるようです。

$result = mysql_query("INSERT INTO gpslocation(latitude, longitude) VALUES('$latitude', '$longitude')");

上記の行を $ 記号に変更して確認してください。

準備されたステートメントで mysql_execute を使用することをお勧めします。この投稿を見る

于 2013-01-21T08:29:14.030 に答える