Añadir registro a una base de datos en PHP
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 4,49 KB
Comienzo del script PHP
Recogemos en una variable el nombre de 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"
Recoger y adaptar las variables pasadas desde el formulario
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
Establecemos la conexión con el servidor
$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) y entre paréntesis y entre comillas introducimos los datos del "servidor", "usuario", "contraseña"
Asignamos la conexió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
AÑADIMOS 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 $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 $1, $2… (que procedían del formulario) y con los datos de conexión al servidor ($c)
Comprobamos el resultado de la inserción
El error CERO 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" en negrita (falta la apertura "") y con formato encabezado 2
else {en caso contrario (hay algún error)}
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 ….", con un salto de línea y formato de texto tipo Encabezado 2
else {En caso contrario al anterior}
$numerror = mysql_errno($c); Se crea la variable $numerror, que recibe el valor del número de error que ha devuelto la sentencia MYSQL_ERRNO (parámetros de conexión)
$descrerror = mysql_error($c); Se crea la variable $descrerror, que recibe el valor del que ha devuelto la sentencia MYSQL_ERROR (parámetros de conexión), devolviendo el mensaje del texto de error que señala MYSQL
echo "Se ha producido un error nº $numerror que corresponde a: $descrerror
"; Presenta en pantalla el mensaje "Se ha producido un error nº…" (valor del número de error) "que corresponde a:" (mensaje del error que nos ha devuelto la sentencia MYSQL_ERROR y que habíamos almacenado en la variable $descrerror. Inserta un salto de línea.
Fin del condicional
Fin del condicional de nivel superior
Cerramos la conexión
mysql_close(); La sentencia MYSQL_CLOSE cierra la conexión que hemos abierto
Fin script PHP