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").
$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$v1que 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$v2que 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$v3que 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$v4que 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
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