📅  最后修改于: 2023-12-03 15:22:19.401000             🧑  作者: Mango
在开发Android应用程序时,我们经常需要将数据存储在MySQL数据库中并进行相应的CRUD操作。本文将介绍如何使用PHP和Volley Android在MySQL中进行插入数据的操作。
在开始之前,你需要以下工具:
首先,我们需要创建一个数据库,并在其中创建一个数据表。以下是一个示例SQL语句:
CREATE DATABASE android_crud;
USE android_crud;
CREATE TABLE contacts (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
email VARCHAR(50) NOT NULL,
phone VARCHAR(15) NOT NULL,
PRIMARY KEY (id)
);
该SQL语句将创建一个名为android_crud
的数据库,其中包含一个名为contacts
的数据表。该数据表包含一个自增长的ID字段,以及名为name
、email
和phone
的字符串字段。
接下来,我们需要创建一个名为insert_contact.php
的PHP文件,该文件将处理插入数据的操作。以下是该文件的示例代码:
<?php
// 数据库连接参数
$host = "localhost";
$user = "database_user";
$password = "database_password";
$database = "android_crud";
// 创建数据库连接
$con = mysqli_connect($host, $user, $password, $database);
// 检查连接是否成功
if(mysqli_connect_errno()){
echo "连接数据库失败: " . mysqli_connect_error();
}
// 获取POST请求中的数据
$name = $_POST["name"];
$email = $_POST["email"];
$phone = $_POST["phone"];
// 构造插入数据的SQL语句
$sql = "INSERT INTO contacts (name, email, phone) VALUES ('$name', '$email', '$phone')";
// 执行SQL语句
if(mysqli_query($con, $sql)){
echo "数据插入成功";
}else{
echo "数据插入失败: " . mysqli_error($con);
}
// 关闭数据库连接
mysqli_close($con);
?>
该PHP文件将通过POST请求获取要插入的数据,并将其插入到数据表中。
接下来,我们需要在Android Studio中创建一个基本的应用程序,并使用Volley库与PHP文件进行通信。
首先,我们需要在build.gradle
文件中添加Volley库的依赖项。在这里我们使用的是com.android.volley:volley:1.2.0
版本。
dependencies {
// 其他依赖项...
implementation 'com.android.volley:volley:1.2.0'
}
接下来,我们需要创建一个布局文件,该文件包含用于输入联系人详细信息的表单。以下是布局文件的示例代码:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp">
<EditText
android:id="@+id/editTextName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:hint="姓名"
android:inputType="text" />
<EditText
android:id="@+id/editTextEmail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:hint="电子邮件"
android:inputType="textEmailAddress" />
<EditText
android:id="@+id/editTextPhone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:hint="电话号码"
android:inputType="phone" />
<Button
android:id="@+id/buttonSave"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="24dp"
android:text="保存" />
</LinearLayout>
该布局文件包含三个EditText和一个Button。当用户点击“保存”按钮时,应用程序将使用Volley库向PHP文件发送POST请求,以插入数据。
最后,我们需要创建一个名为InsertContactActivity.java
的Java文件,并在其中实现向服务器插入数据的逻辑。以下是该文件的示例代码:
public class InsertContactActivity extends AppCompatActivity {
// 插入数据的PHP文件URL
private static final String INSERT_URL = "http://localhost/insert_contact.php";
private EditText editTextName;
private EditText editTextEmail;
private EditText editTextPhone;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_insert_contact);
// 初始化布局控件
editTextName = findViewById(R.id.editTextName);
editTextEmail = findViewById(R.id.editTextEmail);
editTextPhone = findViewById(R.id.editTextPhone);
// 为“保存”按钮设置点击监听器
findViewById(R.id.buttonSave).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 获取要插入的数据
String name = editTextName.getText().toString().trim();
String email = editTextEmail.getText().toString().trim();
String phone = editTextPhone.getText().toString().trim();
// 创建POST请求
StringRequest postRequest = new StringRequest(Request.Method.POST, INSERT_URL,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
// 处理服务器响应
Toast.makeText(getApplicationContext(), response, Toast.LENGTH_SHORT).show();
finish();
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// 处理请求错误
Toast.makeText(getApplicationContext(), error.getMessage(), Toast.LENGTH_SHORT).show();
}
}
) {
@Override
protected Map<String, String> getParams() {
// 将要插入的数据添加到POST请求参数中
Map<String, String> params = new HashMap<>();
params.put("name", name);
params.put("email", email);
params.put("phone", phone);
return params;
}
};
// 将POST请求添加到Volley请求队列中
VolleySingleton.getInstance(getApplicationContext()).addToRequestQueue(postRequest);
}
});
}
}
该Java文件首先获取用户在EditText控件中输入的联系人详细信息。接下来,它使用Volley库创建一个POST请求,将数据添加到请求参数中,并将请求添加到请求队列中。当服务器返回响应时,它将在屏幕上显示一个消息,并关闭当前活动。
现在,你已经学会了如何使用PHP和Volley Android在MySQL中进行插入数据的操作了。你可以使用类似的方法来实现其他的CRUD操作,如查询、更新和删除数据。