En el siguiente artículo, te damos la oportunidad de aprender a como insertar datos en MySQL con PHP desde un formulario ¡No te pierdas esta oportunidad de aprender más sobre MySQL!.

insertar-datos-en-mysql-con-php-desde-un-formulario-1

Insertar datos en MySQL con php desde un formulario

Aunque esta sea información que seguramente ya varios de nosotros debemos saber, creemos que es necesario dar una explicación de estos dos conceptos que tenemos para hacer más fácil la compresión del siguiente artículo en el que hablaremos de como insertar datos en MYSQL con PHP desde un formulario, ambos están relacionados, ya que de lo contrario el título de este artículo no tendría mucho sentido, pero es importante sumergirnos a nosotros mismos en unos conceptos previos que nos ayuden a comprender ambos para poder hacer la compresión de la información aquí contenida más fácil de digerir, de modo que daremos tanto una explicación de lo qué es un MYSQL como de qué es un PHP.

¿Qué es MySQL?

MySQL viene siendo un sistema de gestión de base de datos relacionales de código abierto (entendiendo esto por una base de datos a una colección de datos estructurados) con un modelo de cliente-servidor (las computadoras que tienen instalado el software de base de datos relacionales de código abierto se llaman clientes y siempre que necesitan acceder a los datos se conectan a este servidor, de ahí viene el nombre de cliente-servidor). Este es un software o servicio que podemos utilizar para crear y administrar bases de datos basadas en un modelo relacional.

También queremos aclarar que con código abierto lo que quiere decir es que estamos en nuestra libertad de usarlo y modificarlo, además de que cualquiera puede instalar el software. De igual manera, tenemos la posibilidad de adaptarlo según nuestras necesidades aprendiendo a personalizar el código fuerte.

Si quieres tener más información detallada sobre lo que es MySQL, te invitamos a leer el siguiente artículo para aclarar cualquier duda que puedas tener: Tipos de datos en MYSQL .

¿Qué es un PHP?

PHP es lo que tenemos como un lenguaje de código abierto, muy popular, especialmente adecuado para el desarrollo web y que puede ser incrustado en HTML (un lenguaje de marcado que nos permite indicar la estructura de nuestro documento mediante etiquetas). Una cosa que podría distinguir a PHP de algo del lado del cliente como lo es Javascript es que el código es ejecutado en el servidor, generando HTML y enviándolo al cliente.

Lo mejor que puede brindarnos PHP cuando lo usemos es lo simple que puede hacérselos si somos principiantes, al igual que ofrece muchas características avanzadas para los programadores profesionales, y aunque el desarrollo de PHP está centrado en la programación de scripts del lado del servidor, lo podemos utilizar para muchas otras cosas; ahora que entendemos estos conceptos, podemos adentrarnos a lo que verdaderamente queremos tratar en este artículo.

Pero antes de empezar con esta explicación, tenemos que aclarar que necesitaremos acceso a nuestro panel de hosting para poder proceder a insertar datos en MYSQL con PHP desde un formulario, si seguimos estos pasos, ya que debemos saber cómo trabajar con PHP y con base de datos. Habiendo dicho esto, podemos empezar a explicar las opciones que tenemos para cumplir con esta función:

Crear una tabla

Lo primero que debemos hacer antes de proceder con este paso para insertar datos en MYSQL con PHP desde un formulario, es crear una tabla para nuestros datos, cuando ya la hayamos creado lo que tenemos que hacer es movernos hacia abajo hasta donde veamos la siguiente sección. Este proceso de crear una tabla podemos verlo como un proceso simple, en el cual tenemos la posibilidad de realizar con una aplicación llamada “phpMyAdmin”, que podemos encontrarnos en nuestro panel de control de hosting, a esta podemos ingresar para seguir los pasos que tendremos si escogimos la opción de crear una tabla.

Después de que ingresemos a nuestra página de phpMyAdmin, lo que vamos a encontrarnos es una casilla que dirá: “Name”, otra que dirá: “Number of columns” y arriba nos aparecerá una opción que dirá: “Create table”.

Aquí podremos poner el nombre que nosotros deseemos, como por ejemplo: una tabla a la que le pongamos el nombre: “Employees”, para nuestra base de datos que sería u345589761 _ name, y entonces podemos crear una nueva tabla haciendo click en el botón de “Create table”. Después de eso lo que veremos será una nueva página donde vamos a poder ingresar toda la información necesaria para nuestra tabla, nos encontraremos con varias columnas con los nombres de: name, type, length/value, default, collation, attributes, null (la más pequeña de todas) e Index.

Podríamos decir que está es la configuración más simple que podemos usar para una tabla, y si nos encontramos con el caso en el que tenemos alguna duda acerca de la base de datos o tabla y qué tipo de configuración podemos usar para estas columnas, podemos consultar la documentación oficial de phpMyAdmin. En cuánto a cada una de las columnas que nos aparecerían, en la de “Name” lo que tenemos que hacer es poner el nombre de nuestra columna, que aparecerá en la parte superior de nuestra tabla; en la de type podremos establecer un tipo de columna, por ejemplo podemos seleccionar varchar porque necesitaríamos ingresar un tipo de cadena de caracteres de nombre que tenga letras y no números.

En dónde vemos length/value la usaremos para especificar la longitud máxima que la entrada de nuestra columna puede tener y en dónde veríamos Index, como es recomendable tener una columna de ID, podemos usar el índice principal para nuestro campo ID, que lo podemos utilizar para enumerar las entradas de las tablas que requerimos para las configuraciones de las relaciones de las tablas.

phpMyAdmin-1

Código PHP para insertar datos en una base de datos MySQL

Con en esta opción que tenemos para insertar datos en MYSQL con PHP desde un formulario, tenemos dos opciones y podemos escoger la que más nos convenga: El método PHP MySQLi y el método PHP Data Object O PDO. Con el método MySQLi lo que debemos hacer en primer lugar es, con la ayuda del tutorial anterior, establecer una conexión con una base de datos; una vez que ya hayamos hecho esto entonces podemos proceder con la función de MySQL que dice “INSERT”, donde encontraremos un código de ejemplo completo con la conexión básica de los métodos de inserción, nos encontraremos en total con 24 líneas, y las primeras líneas (que vendrían siendo de la 3 a la 18) tiene como objetivo la conexión a la base de datos.

La línea número 19 es la más importante del código PHP, ya que es la que logra insertar datos en la base de datos MYSQL; INSTERT INTO es una función que nos permite agregar datos a la tabla de base de datos especificada. En las columnas nos van a aparecer corchetes, y entre ellos encontraremos columnas de tabla específicas a las que vamos a tener que agregar los siguientes valores: name, last name, email, y los datos se agregarán en el orden que hayamos especificado, si hubiéramos escrito todo en un orden distinto, como: email, last name, name, los valores se verían agregados en un orden distinto.

Lo siguiente que tenemos es la parte de la función de VALUE, la que tendremos para poder especificar nuestros valores para las columnas que ya habíamos especificado previamente, de este modo cada columna representa un valor específico, por ejemplo podríamos tener algo así: name= Test last name= Testing, email=testing@testing.com.

Algo que creemos que es importante resaltar, es que lo que acabamos de ilustrar al describir el ejemplo de las columnas, es seleccionar una función SQL usando un código PHP, y estas consultas deben hacerse entre comillas. Lo que debemos hacer en la siguiente parte del código que vendrían siendo las líneas de la 20 a la 22, es verificar si nuestra consulta fue exitosa, y al hacer esto simplemente nos mostrará un mensaje de éxito sí la consulta que ejecutamos fue completada satisfactoriamente.

Y por último tendríamos las líneas de la 22 a la 24 que nos mostrarían un mensaje diferente en caso de que nuestra consulta no haya sido exitosa. Aquí podemos ver un mensaje de error en tal caso de que algo haya salido mal.

En el caso del método PHP Data Object (PDO) primero necesitaremos una conexión a la base de datos así como dijimos que debía hacerse en el ejemplo anterior, la cual podremos realizar creando un nuevo objeto, ya que la conexión a la base de datos MySQL es un objeto PDO (cualquier función que sea parte de cualquier objeto) para preparar y ejecutar las funciones. PDO nos permitiría preparar el código SQL antes que lo ejecutemos, y la consulta SQL se corregiría y evaluaría antes de ejecutarse.

Un ataque de inyección de SQL simplificado podría hacerse con tan solo escribir código un SQL en un campo de formulario. Al tener un código SQL sintácticamente correcto, al poner punto y coma, haríamos que DROP DATABSE user_table sea una nueva consulta de SQL, y entonces nuestra tabla de usuario se borraría; tomemos en cuenta que las funciones declaradas no permiten los caracteres <y; para finalizar la consulta original y la instrucción DROP DATABASE nunca podría ejecutarse.

En las líneas 28, 29 y 30 usaríamos el método bindPiramid() (este método evalúa los datos cuando se alcanza el método execute) del objeto de la base de datos, aunque también tendríamos el método bindValue() (que evalúa los datos tan pronto como se llega a bindValue) que es muy diferente. Si queremos actualizar nuestra base de datos para reemplazar a bindPiramid con bindValue todo lo que tendríamos que hacer es insertar en MYSQL <Test Testing> dos veces en la base de datos.

code-1

¿Cómo confirmar que todo esté en orden al insertar datos en MySQL desde un formulario?

Primero que nada, todo lo que tenemos que hacer para saber que la consulta que hicimos en la base de datos MySQL, es esperar ver el mensaje «Connect Successfully. New record created successfully», Aunque puede haber momentos en los que en los que el nuevo registro puede puede mostrar un error al insertar de SQL, pero no debemos preocuparnos por esto ya que hay algunas maneras en las que podemos solucionar estos errores de MYSQL.

En MYSQL, si nos aparece un mensaje de error, podemos aplicar algunos métodos para solucionar este problema, por ejemplo si tenemos un error de sintaxis en nuestro código, nos encontraremos con el siguiente mensaje:

«Connect successfully, error: insert into employees {name, lastname, email} VALUES (‘Test’, ‘Testing’, ‘Testing@testing.com’) You have an error in your SQL syntax; check the manual that corresponds to your MYSQL server version for the right syntax to use near ‘{name, lastname, email} VALUES (‘Test’, ‘Testing’, ‘Testing@testing.com’) at like 1».

Como podemos ver, la primera parte de nuestro código se estableció con éxito, pero nuestra consulta SQL se topó con un muro: «Error, Insert INTO employees {name, lastname, email} VALUES (‘Steve’, ‘Vial’, ‘thom.v@some.com’) You have an error in your SQL syntax; check the manual that corresponds to your MYSQL server version for the right syntax to use near ‘{name, lastname, email} VALUES (‘Steve’, ‘Vial’, ‘steve.v@some.com’)’ at line 1», aquí tenemos un error de sintaxis que lamentablemente provocó el error en nuestro script, entonces el error estuvo dónde decía: «$sql= insert into Employees {name, lastname, email} VALUES (‘Steve’, ‘Vial’, ‘steve.v@some.com’)»; No está bien utilizar corchetes en vez de paréntesis simples, y como eso fue lo que hicimos, el script nos arrojó un error de sintaxis.

En cuánto a PDO en la línea 7 de la conexión de este, el modo de error está configurado para mostrar todas las excepciones, si esto pasará y quedará fuera del script, la consulta nos fallaría, pero no recibiríamos ningún mensaje de error, ya que con las excepciones habilitadas, nos muestra el problema específico. Por lo general esto solo deberíamos utilizarlo para desarrollar un script, porque podemos exponer la base de datos y los nombres de las tablas, cosa que quizá preferiríamos ocultar de cualquiera que intenté acceder con malas intenciones a nuestros datos.

En el caso anterior dónde usamos corchetes en vez de usar paréntesis normales, el error que nos aparecería así: «Fatal error: Uncaught exception ‘PDO exception’ with message ‘SQLSTATE [42000]: syntax error or acces violation: 1064 You have an error in your SQL syntax; <code> check the manual that corresponds to your MYSQL server version for the right syntax to use near ‘{name, lastname, email} VALUES (‘Steve’ , ‘Vial’, ‘steve.v@some.com’)’ at line 1» </code>.

Otros problemas que podríamos encontrarnos a la hora de insertar datos en MYSQL desde un formulario pueden ser: columnas incorrectas especificadas (o sea, columnas inexistentes o un error de ortografía), un tipo de valor asignado a otro tipo de columna.

Por ejemplo: Si tratásemos de asignar un número 24 a una columna que hayamos establecido con el nombre de (NAME), lo que obtendríamos sería un error porque se supone que debería tener un valor de solo texto; ahora, si asignaremos un número entre comillas, usando el mismo ejemplo del número 24, eso podría funcionarnos porque nuestro número se asignaría como un texto a la columna.

El último problema que podríamos encontrarnos es al intentar ingresar datos en una tabla que no existe o al cometer un error ortográfico en la tabla. Todos estos errores podemos solucionarlos fácilmente si seguimos las pautas del mensaje de error, después de que tengamos una entrada de datos exitosa, lo que deberíamos hacer es ver la información agregada a nuestra base de datos.

Con este artículo esperamos haber podido aclarar de la manera más clara y comprensible posible para que aprendamos fácilmente a insertar datos en MYSQL desde un formulario, a usar PHP, tanto al haber explicado de la manera más clara y concisa estos dos conceptos para poder entender mejor la explicación dada acerca de cómo insertar datos en una base de datos MYSQL con la ayuda de MYSQLi y PDO, explicamos ambas opciones con las que podemos realizar esta opción (creando una tabla o creando un código PHP para insertar datos en una base de datos MYSQL) a confirmar que todo lo que hayamos realizado hasta ahora esté en su respectivo orden y también aprender a solucionar los errores de conexión que somos propensos a cometer o que se nos podrían presentar ya que lo que hicimos fue mencionar los que son los más comunes.

El lenguaje de la programación puede parecer algo complicado y sin duda es algo a lo que debemos prestarle mucha atención cuando estamos trabajando con este, porque debemos procurar que nuestros códigos estén establecidos de una manera perfecta para poder evitar que todo nuestro sistema falle y esto nos obligue a empezar todo de nuevo, que es precisamente lo que de seguro muchos queremos evitar.  Saber cómo usar PHP para insertar datos a una base de datos MYSQL es útil ya sea que estemos aprendiendo a programar o que de otro modo lo que estemos haciendo sea construyendo nuestro propio sitio web.

Si deseas tener conocer más sobre como insertar datos en MySQL con PHP desde un formulario, te invitamos a ver el siguiente vídeo: