无法从android应用程序将数据插入mysql数据库

时间:2014-03-03 05:15:20

标签: java php android mysql

我正在开发我的Android MySQL项目,并且已经在WAMP服务器上建立了数据库。数据库名称是“bagyourjob2”。我使用PHP进行CRUD操作,使用JSON进行解析。我创建了一个XML页面,用于为其添加新活动和JAVA类。但是当我尝试添加数据时,应用程序突然停止。 这是我的java类:

    package com.example.sampleapp;

    import java.util.ArrayList;
    import java.util.List;

    import org.apache.http.NameValuePair;
    import org.apache.http.message.BasicNameValuePair;
    import org.json.JSONException;
    import org.json.JSONObject;

    import android.app.Activity;
    import android.app.ProgressDialog;
    import android.content.Intent;
    import android.os.AsyncTask;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;

    public class NewProductActivity extends Activity {

        // Progress Dialog
        private ProgressDialog pDialog;

        JSONParser jsonParser = new JSONParser();
        EditText inputName;
        EditText inputPrice;
        EditText inputDesc;

        // url to create new product
        private static String url_create_product = "http://10.0.2.2:80/create_product.php";

        // JSON Node names
        private static final String TAG_SUCCESS = "success";

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.add_product);

            // Edit Text
            inputName = (EditText) findViewById(R.id.inputName);
            inputPrice = (EditText) findViewById(R.id.inputPrice);
            inputDesc = (EditText) findViewById(R.id.inputDesc);

            // Create button
            Button btnCreateProduct = (Button) findViewById(R.id.btnCreateProduct);

            // button click event
            btnCreateProduct.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View view) {
                    // creating new product in background thread
                    new CreateNewProduct().execute();
                }
            });
        }

        /**
         * Background Async Task to Create new product
         * */
        class CreateNewProduct extends AsyncTask<String, String, String> {

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

            /**
             * Creating product
             * */
            protected String doInBackground(String... args) {
                String name = inputName.getText().toString();
                String price = inputPrice.getText().toString();
                String description = inputDesc.getText().toString();

                // Building Parameters
                List<NameValuePair> params = new ArrayList<NameValuePair>();
                params.add(new BasicNameValuePair("name", name));
                params.add(new BasicNameValuePair("price", price));
                params.add(new BasicNameValuePair("description", description));

                // 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(), AllProductActivity.class);
                        startActivity(i);

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

                return null;
            }

            /**
             * After completing background task Dismiss the progress dialog
             * **/
            protected void onPostExecute(String file_url) {
                // dismiss the dialog once done
                pDialog.dismiss();
            }

        }
    }

下面,
- &GT;从EditText表单中读取第一个新产品数据并格式化为基本参数      - &GT;请求create_product.php通过HTTP post创建新产品      - &GT;从create_product.php获取json响应后,如果成功位为1,则使用新添加的产品刷新列表视图。


修改 我创建文件的PHP代码如下: create_product.php

以下代码将创建一个新的产品行 所有产品详细信息均来自HTTP Post Request

// array for JSON response
<?php
$response = array();

// check for required fields
if (isset($_POST['name']) && isset($_POST['price']) && isset($_POST['description'])) {

    $name = $_POST['name'];
    $price = $_POST['price'];
    $description = $_POST['description'];

    // include db connect class
    require_once __DIR__ . '/db_connect.php';

    // connecting to db
    $db = new DB_CONNECT();

    // mysql inserting a new row
    $result = mysql_query("INSERT INTO products(name, price, description) VALUES('$name', '$price', '$description')");

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

以上代码将创建一个新的产品行 所有产品详细信息均从HTTP Post Request中读取 此文件主要用于在products表中创建新产品。

在上面的代码中,我通过POST读取产品数据并将它们存储在products表中。最后,我回应适当的JSON作为响应。

0 个答案:

没有答案