Operación CRUD en MySQL usando PHP, Volley Android – Insertar datos

Se sabe que podemos usar MySQL para usar el lenguaje de consulta de estructura para almacenar los datos en forma de RDBMS . SQL es el lenguaje más popular para agregar, acceder y administrar contenido en una base de datos. Es más conocido por su procesamiento rápido, confiabilidad comprobada, facilidad y flexibilidad de uso. La aplicación se utiliza para una amplia gama de propósitos, incluidas las aplicaciones de almacenamiento de datos, comercio electrónico y registro. MySQL proporciona un conjunto de algunas operaciones básicas pero esenciales que lo ayudarán a interactuar fácilmente con la base de datos MySQL y estas operaciones se conocen como operaciones CRUD.

En el artículo anterior, hemos visto crear una nueva base de datos SQL en el servicio PhpMydmin . En este artículo, realizaremos la operación Insertar datos. Antes de realizar esta operación, en primer lugar, debemos crear un nuevo script PHP para agregar nuevos datos a esa base de datos en nuestra base de datos SQL

Requisito previo: debe tener Postman instalado en su sistema para probar este script PHP. 

Cree un nuevo script PHP para agregar nuevos datos a esa base de datos en nuestra base de datos SQL

Construiremos un script PHP simple en el que se usará para agregar datos a nuestra tabla SQL que hemos creado en nuestro artículo anterior. Usando este script agregaremos datos a nuestra tabla SQL. 

Implementación paso a paso

Paso 1: inicie su servidor XAMPP que hemos visto comenzar en el artículo anterior 

En el artículo anterior, hemos visto iniciar nuestro servidor XAMPP y también hemos creado nuestra base de datos. En este artículo, crearemos un script para agregar datos a nuestra base de datos. 

Paso 2: navega a la carpeta xampp 

Ahora tenemos que navegar a la unidad C en su PC y dentro de eso verificar el nombre de la carpeta como xampp. Dentro de esa carpeta, navegue a la carpeta htdocs y cree una nueva carpeta en ella y asígnele el nombre CourseApp. Dentro de esta carpeta, almacenaremos todos nuestros scripts PHP. Ahora, para escribir su script PHP, podemos usar cualquier editor de texto simple. Estoy usando el código VS. Después de crear esta carpeta, simplemente tenemos que abrir esta carpeta en código VS. 

Paso 3: Crear un nuevo archivo PHP 

Después de abrir su carpeta en el código VS, dentro de esa carpeta tenemos que presionar una tecla de acceso directo como Ctrl+N, se creará nuestro nuevo archivo. Tenemos que guardar este archivo con el nombre addCourses.php y agregarle el siguiente código. Se agregan comentarios en el código para conocer con más detalle.   

PHP

<?php
 
$servername = "localhost";
 
// for testing the user name is root.
$username = "root";
 
// the password for testing is "blank"
$password = "";
 
// below is the name for our
// database which we have added.
$dbname = "id16310745_gfgdatabase";
  
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
 
 // an array to display response
 $response = array();
 // on below line we are checking if the body provided by user contains
 // this keys as course name,course description and course duration
 if($_POST['courseName'] && $_POST['courseDuration'] && $_POST['courseDescription']){
     // if above three parameters are present then we are extravting values
     // from it and storing it in new variables.
     $courseName = $_POST['courseName'];
     $courseDuration = $_POST['courseDuration'];
     $courseDescription = $_POST['courseDescription'];
     // after that we are writing an sql query to
     // add this data to our database.
     // on below line make sure to add your table name
     // in previous article we have created our table name
     // as courseDb and add all column headers to it except our id.
     $stmt = $conn->prepare("INSERT INTO `courseDb`(`courseName`, `courseDuration`, `courseDescription`) VALUES (?,?,?)");
     $stmt->bind_param("sss",$courseName,$courseDuration,$courseDescription);
   // on below line we are checking if our sql query is executed successfully.
   if($stmt->execute() == TRUE){
        // if the script is executed successfully we are
        // passing data to our response object
        // with a success message.
         $response['error'] = false;
         $response['message'] = "course created successfully!";
     } else{
         // if we get any error we are passing error to our object.
         $response['error'] = true;
         $response['message'] = "failed\n ".$conn->error;
     }
 } else{
     // this msethod is called when user
     // donot enter sufficient parameters.
     $response['error'] = true;
     $response['message'] = "Insufficient parameters";
 }
 // at last we are prinintg our response which we get.
 echo json_encode($response);
 ?>

 
Paso 4: Obtener URL para nuestro script PHP 

Para obtener la URL de nuestro script PHP, simplemente tenemos que escribir localhost en nuestro navegador y tenemos que agregarle el nombre de nuestra carpeta y nuestro nombre de archivo. Verá la URL resaltada a continuación:  

http://localhost/courseApp/addCourses.php

Ahora agregaremos datos en nuestra tabla SQL con esta URL en cartero.  

Paso 5: Probando nuestro PHP Script en Postman 

Para probar su secuencia de comandos PHP, seleccione el método POST en cartero, ya que publicaremos datos en nuestra tabla SQL y dentro de la sección URL agregue la URL anterior. Después de agregar la URL. Ahora haga clic en la pestaña Cuerpo que se muestra en la captura de pantalla a continuación y dentro de eso seleccione x-www-form-urlencoded y luego agregue los parámetros en la sección a continuación como se muestra en la captura de pantalla. Asegúrese de que la clave que está ingresando debe ser la misma que hemos usado para nombrar nuestras columnas en nuestra tabla SQL. Después de agregar todos los datos. Ahora haga clic en la opción Enviar para enviar datos a nuestra tabla SQL.  

Después de enviar esta solicitud, nuestros datos se agregaron a nuestra tabla SQL. Puede ver los datos agregados en la consola de PhpMyAdmin en la siguiente captura de pantalla.  

Insertar operación de datos

En la parte superior, hemos creado un script PHP para agregar datos a nuestra tabla SQL. Junto con eso, también hemos probado ese script al agregarle datos. En esta parte, integraremos eso en nuestra aplicación de Android y agregaremos datos a nuestra tabla SQL desde nuestra aplicación de Android. 

¿Qué vamos a construir en este artículo? 

Construiremos una aplicación simple en la que simplemente agregaremos detalles del curso desde un formulario simple en nuestra tabla SQL que hemos creado. Para realizar esta operación, usaremos la biblioteca Volley que se usa para analizar JSON en Android. A continuación se muestra el video en el que veremos lo que vamos a construir en este artículo. 

Implementación paso a paso

Paso 1: crear un nuevo proyecto

Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Tenga en cuenta que seleccione Java como lenguaje de programación. 

Paso 2: agregue la dependencia a continuación en su archivo build.gradle

A continuación se muestra la dependencia de Volley que usaremos para obtener los datos de la API. Para agregar esta dependencia, vaya a la aplicación > Gradle Scripts > build.gradle(app) y agregue la dependencia a continuación en la sección de dependencias.  

implementation ‘com.android.volley:volley:1.1.1’

Después de agregar esta dependencia, sincronice su proyecto y ahora muévase hacia la parte AndroidManifest.xml.   

Paso 3: agregar permisos a Internet en el archivo AndroidManifest.xml

Vaya a la aplicación > AndroidManifest.xml y agréguele el siguiente código.   

XML

<!--permissions for INTERNET-->
<uses-permission android:name="android.permission.INTERNET"/>

 
Paso 4: trabajar con el archivo activity_main.xml

Vaya a la aplicación > res > diseño > actividad_principal.xml y agregue el siguiente código a ese archivo. A continuación se muestra el código para el archivo activity_main.xml .  

XML

<?xml version="1.0" encoding="utf-8"?>
<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"
    tools:context=".MainActivity">
 
    <!--Edit text for getting course Name-->
    <EditText
        android:id="@+id/idEdtCourseName"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="10dp"
        android:layout_marginTop="20dp"
        android:layout_marginEnd="10dp"
        android:hint="Course Name"
        android:importantForAutofill="no"
        android:inputType="text" />
 
    <!--Edittext for getting course Duration-->
    <EditText
        android:id="@+id/idEdtCourseDuration"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="10dp"
        android:layout_marginTop="20dp"
        android:layout_marginEnd="10dp"
        android:hint="Course Duration in min"
        android:importantForAutofill="no"
        android:inputType="time" />
 
    <!--Edittext for getting course Description-->
    <EditText
        android:id="@+id/idEdtCourseDescription"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="10dp"
        android:layout_marginTop="20dp"
        android:layout_marginEnd="10dp"
        android:hint="Course Description"
        android:importantForAutofill="no"
        android:inputType="text" />
 
    <!--Button for adding your course to Firebase-->
    <Button
        android:id="@+id/idBtnSubmitCourse"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:text="Submit Course Details"
        android:textAllCaps="false" />
     
</LinearLayout>

 
Paso 5: trabajar con el archivo MainActivity.java

Vaya al archivo MainActivity.java y consulte el siguiente código. A continuación se muestra el código del archivo MainActivity.java . Se agregan comentarios dentro del código para comprender el código con más detalle. 

Java

import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
 
import androidx.appcompat.app.AppCompatActivity;
 
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
 
import org.json.JSONException;
import org.json.JSONObject;
 
import java.util.HashMap;
import java.util.Map;
 
public class MainActivity extends AppCompatActivity {
     
    // creating variables for our edit text
    private EditText courseNameEdt, courseDurationEdt, courseDescriptionEdt;
    
    // creating variable for button
    private Button submitCourseBtn;
     
    // creating a strings for storing our values from edittext fields.
    private String courseName, courseDuration, courseDescription;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
         
        // initializing our edittext and buttons
        courseNameEdt = findViewById(R.id.idEdtCourseName);
        courseDescriptionEdt = findViewById(R.id.idEdtCourseDescription);
        courseDurationEdt = findViewById(R.id.idEdtCourseDuration);
        submitCourseBtn = findViewById(R.id.idBtnSubmitCourse);
        submitCourseBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                 
                // getting data from edittext fields.
                courseName = courseNameEdt.getText().toString();
                courseDescription = courseDescriptionEdt.getText().toString();
                courseDuration = courseDurationEdt.getText().toString();
 
                // validating the text fields if empty or not.
                if (TextUtils.isEmpty(courseName)) {
                    courseNameEdt.setError("Please enter Course Name");
                } else if (TextUtils.isEmpty(courseDescription)) {
                    courseDescriptionEdt.setError("Please enter Course Description");
                } else if (TextUtils.isEmpty(courseDuration)) {
                    courseDurationEdt.setError("Please enter Course Duration");
                } else {
                    // calling method to add data to Firebase Firestore.
                    addDataToDatabase(courseName, courseDescription, courseDuration);
                }
            }
        });
    }
 
    private void addDataToDatabase(String courseName, String courseDescription, String courseDuration) {
         
        // url to post our data
        String url = "http://localhost/courseApp/addCourses.php";
         
        // creating a new variable for our request queue
        RequestQueue queue = Volley.newRequestQueue(MainActivity.this);
         
        // on below line we are calling a string
        // request method to post the data to our API
        // in this we are calling a post method.
        StringRequest request = new StringRequest(Request.Method.POST, url, new com.android.volley.Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                Log.e("TAG", "RESPONSE IS " + response);
                try {
                    JSONObject jsonObject = new JSONObject(response);
                    // on below line we are displaying a success toast message.
                    Toast.makeText(MainActivity.this, jsonObject.getString("message"), Toast.LENGTH_SHORT).show();
                } catch (JSONException e) {
                    e.printStackTrace();
                }
                // and setting data to edit text as empty
                courseNameEdt.setText("");
                courseDescriptionEdt.setText("");
                courseDurationEdt.setText("");
            }
        }, new com.android.volley.Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                // method to handle errors.
                Toast.makeText(MainActivity.this, "Fail to get response = " + error, Toast.LENGTH_SHORT).show();
            }
        }) {
            @Override
            public String getBodyContentType() {
                // as we are passing data in the form of url encoded
                // so we are passing the content type below
                return "application/x-www-form-urlencoded; charset=UTF-8";
            }
 
            @Override
            protected Map<String, String> getParams() {
                 
                // below line we are creating a map for storing
                // our values in key and value pair.
                Map<String, String> params = new HashMap<String, String>();
                 
                // on below line we are passing our
                // key and value pair to our parameters.
                params.put("courseName", courseName);
                params.put("courseDuration", courseDuration);
                params.put("courseDescription", courseDescription);
                 
                // at last we are returning our params.
                return params;
            }
        };
        // below line is to make
        // a json object request.
        queue.add(request);
    }
}

 
Ahora ejecute su aplicación y vea el resultado del código. 

Salida :  

Puede ver los datos que se han agregado a su tabla SQL en la siguiente captura de pantalla.  

Publicación traducida automáticamente

Artículo escrito por chaitanyamunje y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *