Por que usar PHP y MySQL
Si no conoces bien todavía que es PHP y MySQL te contamos por qué utilizar estas dos tecnologías para desarrollar sitios web,...
Aprende a insertar, cambiar y borrar en bases de datos MySQL con este vídeo.
Tabla de contenidos
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:
!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.
También te puede interesar
Si no conoces bien todavía que es PHP y MySQL te contamos por qué utilizar estas dos tecnologías para desarrollar sitios web,...
PHP es el lenguaje de programación del lado del servidor más conocido y sencillo de utilizar. Aprende a...
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....