En la entrega anterior de esta serie sobre MySQL, proporcioné una visión general de la manipulación de tablas en MySQL. En esta parte de la serie de tutoriales, te enseñaré a crear CRUD en PHP y MySQL ejecutando consultas de inserción, actualización y eliminación. Estas consultas se pueden ejecutar de las siguientes formas.
Ejecución de una sola consulta
Ejecuta una única consulta cada vez. Empecemos insertando datos en nuestra base de datos que hemos creado previamente en nuestro alojamiento para PHP MySQL. Crea un nuevo archivo php en la carpeta «práctica» que hemos creado previamente y llámalo crud.php. CRUD es la abreviatura de las consultas Crear, Leer, Actualizar y Eliminar. Ahora, en el nuevo archivo, añade esta línea en la parte superior require_once ‘db_connection.php’ y crea esta nueva función:
require_once 'db_connection.php';
function SingleQuery($queri)
{
$conn = OpenCon();
if($conn->query($queri) === TRUE)
{
CloseCon($conn);
return true;
}
else
{
return $conn->error;
}
}
La función toma un único parámetro como tu consulta requerida y la ejecuta. Ahora, crea un nuevo archivo, index2.php en la misma carpeta y en la parte superior añade esta línea require_once ‘crud.php’. Ahora añade estas líneas en tu index2.php:
include 'crud.php';
$sql = "INSERT INTO myguests(firstname,lastname,email,subject) VALUES ('w','w','[email protected]','First Insert Using Single Query')";
$result = SingleQuery($sql);
if($result === true)
{
echo 'success';
}
else
{
echo $result;
}
A continuación, abre tu navegador y dirígete a localhost/practice/index2.php y comprobarás si has escrito la consulta correcta.
Ejecución de Consultas Múltiples
Utilizando este método, puedes ejecutar más de una consulta de inserción, selección o actualización. Empecemos escribiendo una función para consultas de Multiinserción o Actualización. Escribe esta nueva función en tu archivo crud.php
function MultiQuery($quries)
{
$conn = OpenCon();
if($conn->multi_query($quries) === true)
{
CloseCon($conn);
return true;
}
else
{
return $conn->error;
}
}
La función toma un único parámetro como tu consulta requerida y la ejecuta. Ahora, llama a esta función en tu index2.php:
include 'crud.php';
$sql = "INSERT INTO myguests(firstname,lastname,email,subject) VALUES ('a','a','[email protected]','First Insert Using Multiple Queries');";
$sql .= "INSERT INTO myguests(firstname,lastname,email,subject) VALUES ('b','b','[email protected]','First Insert Using Multiple Queries');";
$sql .= "INSERT INTO myguests(firstname,lastname,email,subject) VALUES ('c','c','[email protected]','First Insert Using Multiple Queries');";
$result = MultiQuery($sql);
if($result === true)
{
echo 'success';
}
else
{
echo $result;
}
Ahora, abre tu navegador y localiza a localhost/practice/index2.php y comprobarás si has escrito la consulta correcta.
Nada tan fácil como desplegar aplicaciones PHP en la nube
Con Cloudways, puedes tener tus aplicaciones PHP funcionando en servidores gestionados en la nube en sólo unos minutos.
CRUD en PHP y MySQL con sentencias preparadas
Las sentencias preparadas se utilizan para ejecutar la misma consulta varias veces con gran eficacia. Ahora escribe esta nueva función en tu archivo crud.php:
function PreQuery($fname,$lname,$email,$subj)
{
$conn = OpenCon();
$query = $conn->prepare("INSERT INTO myguests(firstname, lastname, email, subject) VALUES (?,?,?,?)");
$query->bind_param("ssss", $fname,$lname,$email,$subj);
if($query->execute())
{
CloseCon($conn);
return true;
}
else
{
return $conn->error;
}
}
Vamos a seleccionar datos utilizando sentencias preparadas. Veamos cómo funcionan las sentencias preparadas:
- Primero, preparas tu sentencia como INSERT INTO misinvitados(nombre, apellidos, email, asunto) VALUES (?,?,?,?). Dejamos ? donde queremos insertar los valores.
- El primer parámetro toma los tipos de datos del valor y, a continuación, los valores. El argumento tipo de datos puede ser de cuatro tipos.
- i – número entero
- s – cadena
- d – doble
- b – mancha
- Lo ejecutaremos.
La función toma cuatro parámetros como valor requerido y la ejecuta. Ahora, llama a esta función en tu index2.php:
include 'crud.php'; $firstn = "Ahmed"; $lastn = "Khan"; $email = "[email protected]"; $subject = "Inserting Data using prepared Query"; $result = PreQuery($firstn,$lastn,$email,$subject); if($result === true) { echo 'success'; } else { echo $result; }
Ahora, abre tu navegador y localiza a localhost/practice/index2.php y tendrás éxito si has escrito la consulta correcta.
Seleccionar ejecución de consulta
Ahora, vamos a seleccionar los datos de nuestra base de datos MySQL mediante la ejecución de una sola consulta. Escribe una nueva función en tu crud.php escrita a continuación:
function selectdata($sql)
{
$conn = OpenCon();
$result = $conn->query($sql);
if($result)
{
if($result->num_rows > 0)
{
return $result;
}
else
{
return "zero";
}
}
else
{
return $result->error;
}
}
La función comprueba primero que la consulta se ejecuta correctamente. Si no es así, envía un error. En segundo lugar, comprueba si el número de filas es mayor que 0 o no. Si es así, envía «Cero resultados encontrados». Ahora, llama a esta función en index2.php escribiendo el siguiente código:
<table>
<tr>
<td> Name</td>
<td> Email</td>
<td> Message</td>
</tr>
<?php
include 'crud.php';
$sql = "SELECT * FROM `myguests`";
$result = selectdata($sql);
if($result != "zero")
{
while($row = $result->fetch_assoc())
{
echo "<tr>";
echo "<td>" . $row['firstname'].' '.$row['lastname'] . "</td>";
echo "<td>" . $row['email']. "</td>";
echo "<td>" . $row['subject']. "</td>";
echo "</tr>";
}
}
else
{
echo $result;
}
?>
</table>
Después de esto, abre tu navegador y localiza a localhost/practice/index2.php y encontrarás todos los datos almacenados en tu base de datos en tu página index2.php.
Actualizar consulta mediante sentencia preparada
Escribamos una nueva función en tu archivo crud.php para ejecutar la sentencia update:
function UpdateQuery($column,$value,$id)
{
$conn = OpenCon();
$query = $conn->prepare("UPDATE myguests SET $column = ? WHERE id = ?");
$query->bind_param("si",$value,$id);
if($query->execute())
{
CloseCon($conn);
return true;
}
else
{
return $conn->error;
}
}
El parámetro actualizar toma tres parámetros. Uno es el nombre de la columna que debe actualizarse, el segundo es el valor que se sustituirá por el valor anterior y el tercero es el ID de la fila en la que se modificará. Ahora, ejecuta esta función en index2.php :
include 'crud.php';
$result = UpdateQuery("firstname","David",1);
if($result === true)
{
echo 'success';
}
else
{
echo $result;
}
Cuando lo hayas hecho, abre tu navegador y localiza a localhost/practice/index2.php y tendrás éxito si no hay ningún error.
Eliminar consulta mediante sentencia preparada
Escribamos una nueva función en tu archivo crud.php para ejecutar una sentencia de borrado:
function DeleteQuery($id)
{
$conn = OpenCon();
$query = $conn->prepare("DELETE FROM myguests WHERE id = ?");
$query->bind_param("i",$id);
//var_dump($query);
if($query->execute())
{
CloseCon($conn);
return true;
}
else
{
return $conn->error;
}
}
El parámetro delete toma un parámetro que será el ID de la fila que hay que borrar de la tabla. Ahora, ejecuta esta función en index2.php:
include 'crud.php';
$result = DeleteQuery(1);
if($result === true)
{
echo 'success';
}
else
{
echo $result;
}
Después de eso, abre tu navegador y localiza a localhost/practice/index2.php y encontrarás el éxito si no hay ningún error.
Conclusión
En este tutorial, hemos aprendido a ejecutar CRUD en PHP y MySQL utilizando tres formas diferentes. En la próxima entrega de esta serie sobre MySQL, hablaré de las cláusulas de obtención de datos de MySQL. Aquí tienes una breve introducción y una lista de los temas principales de esta serie sobre MySQL.
Si tienes alguna pregunta sobre lo que hemos aprendido en este tutorial, ¡no dudes en comentarlo abajo! ¡Que tengas suerte! 🙂
Start Growing with Cloudways Today.
Our Clients Love us because we never compromise on these
Shahzeb Ahmed
Un creativo de día (con una taza de té) y un creativo de noche. Ahmad Kamran es redactor de contenidos estacionales y Ejecutivo de Marketing Senior en Cloudways. Puedes encontrarle en su escritorio escribiendo, elaborando estrategias o jugando. Y en caso de que no puedas encontrarle aquí, estará en la montaña o junto a la orilla del río.