Implementación de Inserción de Datos en Base de Datos con PHP y MySQL

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 5,82 KB

El siguiente fragmento de código ilustra el proceso para recibir datos de un formulario HTML y almacenarlos en una base de datos MySQL utilizando funciones de PHP (Nota: Se recomienda encarecidamente migrar a extensiones modernas como MySQLi o PDO, ya que las funciones mysql_* están obsoletas y son inseguras).

1. Definición de Parámetros de la Base de Datos

Se definen las variables que especifican la base de datos y la tabla destino.

  • Recogemos en una variable el nombre de la BASE DE DATOS:

$base="libros";

Creamos la variable $base y le adjudicamos el valor de la cadena que tiene el nombre de nuestra base de datos ("libros").

Recogemos en una variable el nombre de la TABLA:

$tabla="altallibros";

Creamos la variable $tabla y le adjudicamos el valor de la cadena "altalibros".

2. Captura y Adaptación de Variables del Formulario

Se recogen los datos enviados mediante el método POST desde el formulario.

Nota: Ni el DNI ni los nombres y apellidos necesitan ninguna modificación, por eso los pasamos a la variable intermedia directamente.

Estas variables intermedias podrían evitarse. El hecho de usarlas obedece únicamente a un intento de mayor claridad en la interpretación de este código fuente.

  • $v1=$_POST['p_v1']; Creamos la variable $v1 que recibirá el valor del campo "p_v1" del formulario que se dirige a esta página (action del formulario) por el método POST.
  • $v2=$_POST['p_v2']; Creamos la variable $v2 que recibirá el valor del campo "p_v2" del formulario que se dirige a esta página (action del formulario) por el método POST.
  • $v3=$_POST['p_v3']; Creamos la variable $v3 que recibirá el valor del campo "p_v3" del formulario que se dirige a esta página (action del formulario) por el método POST.
  • $v4=$_POST['p_v4']; Creamos la variable $v4 que recibirá el valor del campo "p_v4" del formulario que se dirige a esta página (action del formulario) por el método POST.

3. Establecimiento de la Conexión al Servidor

Se establece la conexión con el servidor MySQL.

$c=mysql_connect("localhost","pepe","pepa");

Creamos la variable $c, que utilizaremos para la conexión, y le damos el valor de mysql_connect (para conectarnos al servidor) e introducimos los datos del "servidor", "usuario", "contraseña" entre paréntesis y comillas.

Asignación a una Base de Datos Determinada

mysql_select_db($base,$c);

Realizamos la conexión con la base de datos definida en la variable $base y con los parámetros de conexión al servidor que habíamos guardado en $c.

4. Ejecución de la Sentencia de Inserción

Añadir el Nuevo Registro

¡CUIDADO!

Solo las variables numéricas van sin comillas al insertar los valores. Observa en VALUES que las variables no numéricas se insertan entre comillas.

mysql_query("INSERT INTO $tabla VALUES ('$v1','$v2','$v3','$v4')",$c);

Ejecutamos la sentencia mysql_query para insertar en la tabla definida en la variable $tabla los datos recogidos en las variables $v1, $v2, $v3, $v4 (que procedían del formulario) y con los datos de conexión al servidor ($c).

5. Comprobación del Resultado de la Inserción

Se verifica si la operación se completó exitosamente o si ocurrió un error.

  • El error CERO (0) significa NO ERROR.
  • El error 1062 significa Clave duplicada.
  • En otros errores, forzamos a que nos ponga el número de error y el significado de ese error (aunque sea en inglés).

if (mysql_errno($c)==0){echo "

Registro AÑADIDO

";}

Si el número de error que devuelve mysql_errno (con los parámetros de la conexión) es igual a 0 (NO HAY ERROR), entonces nos presenta en pantalla el texto de "Registro AÑADIDO" con formato de encabezado h2.

else{ En caso contrario (hay algún error)

Manejo de Errores Específicos

if (mysql_errno($c)==1062){echo "

No ha podido añadirse el registro
Ya existe un campo con este DNI

";}

Si el número de error que devuelve mysql_errno es el 1062, entonces presenta en pantalla el texto de que "No ha podido añadirse el registro...", con un salto de línea y formato de texto tipo Encabezado 2.

Otros Errores

else{ En caso contrario al anterior

$numerror=mysql_errno($c); Se crea la variable $numerror, que recibe el valor del número de error devuelto por mysql_errno.

$descrerror=mysql_error($c); Se crea la variable $descrerror, que recibe el valor del mensaje de error devuelto por mysql_error.

echo "Se ha producido un error nº $numerror que corresponde a: $descrerror
";
Presenta en pantalla el mensaje detallado del error. Inserta un salto de línea.

} Fin del condicional de error específico

} Fin del condicional principal de error

6. Cierre de la Conexión

mysql_close(); La sentencia mysql_close cierra la conexión que hemos abierto.

?> Fin script PHP

Entradas relacionadas: