【问题标题】:Insert Edit text value from android to mysql将编辑文本值从 android 插入到 mysql
【发布时间】:2017-10-05 20:50:42
【问题描述】:

我想要的是从 android 中的编辑文本中插入一个值到 mysql 数据库中,有人可以用一个简单的例子告诉我如何吗? mysqldb 名称为 'android' 包含 1 列 'name'

<EditText
    android:layout_width="250dp"
    android:layout_height="wrap_content"
    android:hint="User Name"
    android:id="@+id/new_user_name"
    android:layout_gravity="center_horizontal"
    android:layout_marginTop="20dp"/>

【问题讨论】:

  • 你需要创建webservice来连接mysql数据库。通过 web 服务,您可以将 edittext 值传递给数据库。

标签: php android mysql xml android-studio


【解决方案1】:

首先我们将连接到数据库

<?php
define('HOST','yourHost');
define('USER','username');
define('PASS','password');
define('DB','android');
$con = mysqli_connect(HOST,USER,PASS,DB);

那么你需要捕获 post 变量。此变量将与我们的应用一起发送。

$name = $_POST['name'];

现在将值插入您的数据库。

$sql = "insert into Persons (name,address) values ('$name')";
  if(mysqli_query($con,$sql)){
  echo 'success';
  }
  else{
    echo 'failure';
  }
  mysqli_close($con);
?>

我用EditTextButton 创建了一个简单的布局:

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="10dp"
tools:context=".MainActivity">

<TextView
    android:id="@+id/textView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Name" />

<EditText
    android:id="@+id/editTextName"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="insert"
    android:text="Insert" />

<TextView
    android:id="@+id/textViewResult"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

MainActivity.java

public class MainActivity extends ActionBarActivity {

    private EditText editTextName;
    private EditText editTextAdd;

    String name = editTextName.getText().toString();
    String add = editTextAdd.getText().toString();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    editTextName = (EditText) findViewById(R.id.editTextName);

    }

    public void insert(View view){

        insertToDatabase(name,add);
    }

    private void insertToDatabase(final String name, final String add){
        class SendPostReqAsyncTask extends AsyncTask<String, Void, String> {
            @Override
            protected String doInBackground(String... params) {
                String paramUsername = params[0];


                List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
                nameValuePairs.add(new BasicNameValuePair("name", name));
                nameValuePairs.add(new BasicNameValuePair("address", add));

                try {
                    HttpClient httpClient = new DefaultHttpClient();
                    HttpPost httpPost = new HttpPost(
                        "http://youwebsite.com/insert-db.php");
                    httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

                    HttpResponse response = httpClient.execute(httpPost);

                    HttpEntity entity = response.getEntity();


                } catch (ClientProtocolException e) {

                } catch (IOException e) {

                }
                return "success";
            }

            @Override
            protected void onPostExecute(String result) {
            super.onPostExecute(result);

                Toast.makeText(getApplicationContext(), result, Toast.LENGTH_LONG).show();
                TextView textViewResult = (TextView) findViewById(R.id.textViewResult);
                textViewResult.setText("Inserted");
            }
        }
        SendPostReqAsyncTask sendPostReqAsyncTask = new SendPostReqAsyncTask();
        sendPostReqAsyncTask.execute(name, add);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        //getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        //int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        //if (id == R.id.action_settings) {
        //    return true;
        //}
        return super.onOptionsItemSelected(item);
    }
}

希望这有助于您更好地理解它。

【讨论】:

  • 非常感谢它的帮助
猜你喜欢
  • 1970-01-01
  • 2018-03-27
  • 2013-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-06
相关资源
最近更新 更多