Inserccion de registros en MySQL

INSERCIÓN DE DATOS CON PHP Y MySQL.

Vamos a explicar cómo insertar registros en nuestra base de datos MySQL a través de código PHP. En concreto, añadiremos registros a la tabla agenda que habíamos creado previamente con phpMyAdmin. Para ello tendremos que realizar lo que se denomina una consulta SQL de inserción (insert into) e ir añadiendo tantos registros con sus correspondientes valores para los campos como deseemos.


 

 

Partiremos de nuestra base de datos donde tenemos una tabla denominada agenda con los siguientes datos:

nombre

apellidos

direccion

telefono

edad

altura

Manuel Jesús

López de la Rosa

C/Juan Bautista Nº 3

658954875

32

1.80

María

Manzano Cabezas

C/Arco del triunfo Nº 7

695001002

19

1.99

Pedro Somoza Castro C/Uria nº88, B 88834321 44 1.66
Juana Pérez Rozas Avda. Constitucion nº22 888111222 22 1.77

 

 

Para realizar la inserción de datos vamos a utilizar una sintaxis de este tipo:

mysqli_query($link, "INSERT INTO nombreTabla VALUES (datoCol1, datoCol2, … datoColN)");

 

 

Donde mysqli_query indica que vamos a realizar una operación (en general se denominan consultas, aunque en este caso la operación sea una inserción de datos), $link es el identificador de conexión que hayamos obtenido con mysqli_connect, nombreTabla es el nombre de la tabla en la cual vamos a realizar la inserción de datos y datoCol1, datoCol2, …, datoColN representa los datos que vamos a insertar en la tabla. Tener en cuenta que debemos indicar los datos en el mismo orden en que se encuentran las columnas en la tabla. Por ejemplo para nuestra tabla agenda tendremos que seguir el orden: nombre, apellidos, direccion, telefono, edad, altura (orden de las columnas).

 

 

EJEMPLO DE INSERCIÓN DE DATOS EN UNA TABLA

Escribe este código en un editor y guárdalo en un archivo con un nombre como ejemplo1.php. Luego ejecuta el código (una sola vez, ten en cuenta que si lo ejecutas varias veces insertarás varias veces repetidamente los datos en la base de datos). Recuerda también que debes cambiar y poner tus propios valores en las funciones mysqli_connect y mysqli_select_db.

<?php //Ejemplo curso PHP WEB2020.ES

$link = mysqli_connect("sql203.byethost7.com", "b7_10356956", "*****");

mysqli_select_db($link, "b7_10356956_mibasededatos");

$tildes = $link->query("SET NAMES 'utf8'"); //Para que se inserten las tildes correctamente

mysqli_query($link, "INSERT INTO agenda VALUES ('Pedro2', 'Gómez Gómez', 'C/ Buenaventura 54', '699887766', 35, 1.98)");

mysqli_query($link, "INSERT INTO agenda VALUES ('Antonio2', 'Delgado Folken', 'C/ Durruti 77', '699667744', 88, 1.71)");

mysqli_close($link); // Cerramos la conexion con la base de datos

echo 'Los datos han sido insertados en la base de datos';

?>

 

 

Nota: si usáramos sintaxis no mysqli se usaría mysql_query ("INSERT INTO nombreDeLaTabla VALUES (datoCol1, datoCol2, … datoColN ", $link).

Tenemos que tener cuidado de poner los valores en el insert en el orden en el que aparecen en la base de datos cuando creamos la tabla. Es decir, el primer valor será para la primera columna (en nuestro ejemplo tipo varchar y corresponderá con el nombre), el segundo será para la segunda columna (en nuestro ejemplo tipo varchar y se corresponderá con los apellidos), etc. También tendremos que prestar atención para que los tipos de datos insertados se correspondan con los de la tabla. Por ejemplo, no debemos insertar un valor numérico decimal si se espera un entero.

Ahora vamos a ejecutar el código de la entrega anterior del curso para ver los nuevos registros añadidos por pantalla. Escribe este código en un editor y guárdalo en un archivo con un nombre como ejemplo2.php. Recuerda que debes cambiar y poner tus propios valores en las funciones mysqli_connect y mysqli_select_db.

<html><head><meta charset="utf-8"> </head><body>

<?php //Ejemplo curso PHP WEB2020.ES

function mostrarDatos ($resultados) {

if ($resultados !=NULL) {

echo "- Nombre: ".$resultados['nombre']."<br/> ";

echo "- Apellidos: ".$resultados['apellidos']."<br/>";

echo "- Dirección: ".$resultados['direccion']."<br/>";

echo "- Teléfono: ".$resultados['telefono']."<br/>";

echo "- Edad: ".$resultados['edad']."<br/>";

echo "**********************************<br/>";}

else {echo "<br/>No hay más datos!!! <br/>";}

}

$link = mysqli_connect("sql203.byethost7.com", "b7_10356956", "*****");

mysqli_select_db($link, "b7_10356956_mibasededatos");

$tildes = $link->query("SET NAMES 'utf8'"); //Para que se muestren las tildes correctamente

$result = mysqli_query($link, "SELECT * FROM agenda");

while ($fila = mysqli_fetch_array($result)){ mostrarDatos($fila); }

mysqli_free_result($result); mysqli_close($link);

?>

</body></html>

 

 

El resultado esperado es que se muestren por pantalla todos los resultados de la consulta:

- Nombre: Manuel Jesús - Apellidos: López de la Rosa - Dirección: C/Juan Bautista Nº 3 - Teléfono: 658954875 - Edad: 32

**********************************

- Nombre: María - Apellidos: Manzano Cabezas - Dirección: C/Arco del triunfo Nº 7 - Teléfono: 695001002 - Edad: 19

**********************************

- Nombre: Pedro - Apellidos: Somoza Castro - Dirección: C/Uria nº88, B - Teléfono: 88834321 - Edad: 44

**********************************

- Nombre: Juana - Apellidos: Pérez Rozas - Dirección: Avda. Constitucion nº22 - Teléfono: 888111222 - Edad: 22

**********************************

- Nombre: Pedro - Apellidos: Gómez Gómez - Dirección: C/ Buenaventura 54 - Teléfono: 699887766 - Edad: 35

**********************************

- Nombre: Antonio - Apellidos: Delgado Folken - Dirección: C/ Durruti 77 - Teléfono: 699667744 - Edad: 88

**********************************

 

 

Hemos visualizado el contenido de la base de datos usando una consulta y mostrando los resultados por pantalla. Ten en cuenta que también puedes ver el contenido de la base de datos accediendo directamente a ella. Accede al panel de administración de tu servidor, luego a phpMyAdmin y comprueba cómo los nuevos valores insertados se encuentran en la tabla de la base de datos.

Nota: los nuevos datos añadidos pueden aparecer al final o al principio de la tabla. Si quisiéramos ver los datos con un determinado orden tendríamos que incluir las instrucciones oportunas, pero no vamos a hablar de ello en este momento.

Vamos a resumir lo que hemos hecho: por un lado hemos accedido a la base de datos mediante código PHP y hemos insertado dos nuevas filas (al ejecutar ejemplo1.php) en la tabla agenda. Por otro lado visualizamos el contenido de la tabla agenda (ejemplo2.php) realizando una consulta a la base de datos y comprobamos que aparecen los dos nuevos registros añadidos, correspondientes a “Pedro Gómez Gómez” y “Antonio Delgado Folken”.

Las operaciones de inserción en bases de datos son muy frecuentes en programación web. Ten en cuenta por ejemplo que cada vez que se registra un usuario en una página web hay que guardar la información del usuario (nombre, correo electrónico, etc.). Igualmente cada vez que se produce una compra mediante comercio electrónico hay que almacenar la información de la compra en la base de datos. Es por tanto una operación básica y de gran interés dentro de la programación con bases de datos.