Mautic Pixel

Las cookies nos permiten ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso que hacemos de las cookies. Más Información. Aceptar

Insertar, cambiar y borrar datos de una tabla MySQL

Vicente Herrera
Insertar, cambiar y borrar datos de una tabla MySQL

Hemos visto en un ejemplo anterior cómo podemos conectar a una base de datos MySQL desde PHP, accediendo a una tabla articulos para mostrar todas las entradas cuya columna country tuviera el valor ‘USA’.

En esta ocasión veremos cómo insertar y eliminar registros, y cómo buscar con un planteamiento más genérico. Para ello, partiremos del ejemplo anterior para construir sobre él un código más complejo. Si todavía no has revisado la entrada anterior, te recomendamos que lo hagas antes de leer este ejemplo.

En este caso, el código queda ampliado de manera que tras mostrar el listado de filas, se nos pregunta un comando y un datos a procesar con el mismo. Para cada comando, el dato servirá para una cosa distinta:

  • Insertar : Indicaremos el texto del título de un artículo (siempre insertará con país como USA).
     
  • Borrar : indicaremos el ID autonumérico del elemento a eliminar.
     
  • Buscar : indicaremos una cadena a buscar entre los títulos almacenados en la tabla.
     
!DOCTYPE html>
<html><head><meta charset="UTF-8"></head><body>
<?php
echo '<h1>Ejemplo MySQL</h1>';
// Conectamos con la base de datos

$db = new PDO('mysql:host=localhost;dbname=dbtest;charset=utf8', 'root', '');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

try {
	$stmt = $db->prepare("SELECT * FROM articulos WHERE pais=:mycountry");
	$stmt->execute( array(':mycountry' => 'USA') );
	$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
} catch(PDOException $ex) {
    echo "Ocurrió un error<br>";
    echo $ex->getMessage();
    exit;
}

echo '<ul>';
foreach ($rows as $row) {
	echo '<li>'.$row['id'].' : ('.$row['pais'].') '.$row['titulo'].'</li>';
}
echo '</ul>';

echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post">';
echo 'Comando:<br>';
echo '<select name="command"><option></option>';
echo '<option value="insert">Insertar</option>';
echo '<option value="search">Buscar</option>';
echo '<option value="delete">Borrar</option>';
echo '</select><br><br>';
echo 'Dato:<br><input type="text" name="data" /><br><br>';
echo '<input type="submit" value="Ejecutar" /></form><br>';

if ( ! isset( $_POST['command'] ) ) {
	exit;
}

switch ( $_POST['command'] ) {

	case 'insert':
		$stmt = $db->prepare("INSERT INTO articulos (titulo, pais) VALUES(:data, 'USA')");
		$stmt->execute( array(':data' => $_POST['data'] ) );
		echo 'Dato insertado';
	break;

	case 'search':
		$stmt = $db->prepare("SELECT * FROM articulos WHERE pais=:mycountry 
			AND titulo LIKE :search");
		$stmt->execute( array(
			':mycountry' => 'USA', 
			':search' => '%'.$_POST['data'].'%' ) );
		$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
		echo 'Resultado búsqueda: '.$_POST['data'].'<ul>';
		foreach ($rows as $row) {
			echo '<li>'.$row['id'].' : '.$row['titulo'].'</li>';
		}
		echo '</ul>';

	break;

	case 'delete':
		$stmt = $db->prepare("DELETE FROM articulos WHERE id=:theid");
		$stmt->execute( array(':theid' => $_POST['data'] ) );
		echo 'Dato borrado';
	break;

}

?>
</body>
</html>

Como ves en el código, partimos de la situación anterior, tras lo que mostramos un formulario al usuario para que seleccione la opción del comando que quiere ejecutar. Según el comando recibido, mediante una sentencia switch, ejecutamos el código necesario para ejecutarlo.

En el caso de la inserción, solo es preciso ejecutar una sentencia SQL INSERT , especificando título y país (que dejamos fijo a USA), y enlazando el parámetro a lo especificado en el campo de formulario data .

Para búsqueda, empleamos una sentencia SQL SELECT , pero en lugar de utilizar una igualdad, empleamos un comparador LIKE , donde añadiendo los caracteres “%” al principio y final de la cadena de búsqueda, indicamos que ésta puede encontrarse en cualquier lugar del campo título.

Por último, el borrado se realiza con una sentencia SQL DELETE , donde hay que poner mucho cuidado en añadir una condición WHERE para especificar el id de la fila a eliminar, o eliminaríamos todas las de la tabla.

Este ejemplo, una vez entendido el primero, no es mucho más complicado. Ya solo nos resta aprender un poco más de SQL para hacer cosas cada vez más complejas.

Relacionado

Te dejamos una selección de cursos, carreras y artículos

Por que usar PHP y MySQL

Por que usar PHP y MySQL

Desarrollo Web

07 de Enero de 2019

Si no conoces bien todavía que es PHP y MySQL te contamos por qué utilizar estas dos tecnologías para desarrollar sitios web, más del 50% de las webs están hechas con PHP y MySQL.

Qué es MySQL: Características y ventajas

Qué es MySQL: Características y ventajas

Big Data

24 de Septiembre de 2019

Descubre en este artículo las principales características de este sistema de gestión de bases de datos que actualmente es el más extendido. Veremos además su origen y evolución, sus mayores ventaja...

Más de 300 empresas confían en nosotros

Oesia
Vass
Everis
Ayesa
Altran
Ibermatica
Atmira
GFI
Accenture
GMV
Concatel
Telefonica
Caser
Banco de España
kpmg
Mapfre
Randstad