Antes de comenzar esta guía de inserción de MySQL a través de PHP, necesitará acceder al panel de control de su alojamiento.

¡Obtenga un gran descuento en PHP Hosting hoy! ¡Hasta un 90% de descuento por tiempo limitado!

Empezar ahora

Si aún tiene preguntas sobre cómo configurar su conexión MySQL, puede consultar este tutorial en PHPMySQL, que cubre los pasos más importantes para trabajar con PHP y bases de datos.

Cómo crear una tabla (opcional) Cómo usar PHP para insertar datos en una base de datos MySQL

Primero, tenemos que crear una tabla para sus datos. Si ya ha creado uno, pase a la siguiente sección.

Es un proceso muy simple que puede realizar con phpMyAdmin, que se encuentra en el panel de control de su alojamiento.

Después de iniciar sesión en su página phpMyAdmin, debería ver algo como la imagen a continuación:

Crearemos una tabla llamada Estudiantes a nuestra base de datos u266072517_name. Puede crear una nueva tabla haciendo clic en Crear mesa. Después de eso, verá esta nueva página donde puede ingresar toda la información necesaria para su tabla:

Esta es la configuración más simple que puede usar para una tabla, para obtener más información sobre la estructura de la tabla / base de datos y qué tipos de configuraciones puede usar con esta columna, consulte el documento oficial de la phpMyAdmin.

Por ahora, aquí hay una breve explicación de las columnas que usamos:

  • Nombre – Este es el nombre de su columna. Se mostrará en la parte superior de su mesa.
  • Tipo – Aquí puede configurar el tipo de columna aquí. Por ejemplo, seleccionamos varchar porque necesitamos seleccionar un tipo de nombre aquí (que tiene letras, no números).
  • Longitud / valores – Se utiliza para especificar la longitud máxima que puede tener su entrada en esta columna.
  • Índice – Usamos el “Principal” para el campo “ID”. Al crear una tabla, se recomienda tener una columna de ID. Se utiliza para enumerar las entradas de la tabla y se requiere al configurar la tabla. También seleccionamos “AHÍ”, que significa Autoincremento. Esto enumerará automáticamente las entradas (1, 2, 3, 4…).

clickea en Salvar (Guardar) y su mesa estará lista.

Cómo escribir código PHP para insertar datos en la base de datos MySQL 

Hay dos métodos que puede utilizar para realizar la INSERTAR (Inserción) de datos en su base de datos MySQL, son: método PHP MySQLi y PHP Data Object (o método PDO).

Método MySQLi Cómo usar PHP para insertar datos en una base de datos MySQL

En primer lugar, debe establecer una conexión a la base de datos. Después de ese paso, podemos continuar con el INSERTAR del consulta de MySQL. Aquí hay un ejemplo de código completo con los métodos básicos de conexión e inserción:

La primera parte del código (líneas 3-18) se trata de la conexión actual a la base de datos. No volveremos a pasar por todo el proceso. Sin embargo, si desea saber qué significa cada línea de código, consulte nuestro tutorial sobre cómo conectarse a una base de datos.

Comencemos con la linea 19:

$sql = "INSERT INTO Students (name, lastname, email) VALUES ('Test', 'Testing', 'Testing@tesing.com')";

Esta es la línea más importante de nuestro código y ejecuta todo lo que queremos aprender en este tutorial: insertar datos PHP de MySQL. EL INSERTAR EN es una declaración que agrega datos a una base de datos específica en la tabla. En este ejemplo, estamos agregando datos a la tabla. Estudiantes.

Avanzando, entre corchetes, tenemos las columnas de la tabla para las que queremos agregar valores (nombre, apellido, correo electrónico). Los datos se completarán en el orden especificado. Si escribimos (correo electrónico, apellido, nombre), los valores se agregarían en el orden incorrecto.

La siguiente parte es sobre la declaración. VALORES. Aquí especificamos los valores para las columnas determinadas previamente. De esta forma, cada columna representa un valor específico. Por ejemplo, en nuestro caso sería: nombre = Thom, apellido = Vial, correo electrónico = thom.v@some.com.

Otra cosa relevante es que acabamos de realizar la Consulta SQL usando código PHP. Recordando que las consultas SQL deben colocarse entre citas. En nuestro ejemplo, todo entre comillas y después de $ sql = es una consulta SQL.

La siguiente parte del código (líneas 20 – 22) muestra si nuestro pedido se realizó correctamente.

if (mysqli_query($conn, $sql)) {
     echo "New record created successfully";
}

Simplemente muestra un mensaje de éxito si la orden que ejecutamos se ha cumplido.

Y la parte final (líneas 22-24) muestra un mensaje diferente si la solicitud no se ejecuta correctamente:

else {
     echo "Error: " . $sql . "
" . mysqli_error($conn);
}

Mostrará un mensaje de error si algo sale mal.

Método PHP Data Object (PDO)

Como en el ejemplo anterior, primero necesitamos una conexión a la base de datos creando un nuevo objeto PDO. Para hacer esto, use este tutorial.

Dado que la conexión a la base de datos MySQL es un objeto PDO, debe utilizar varios métodos DOP (cualquier función que forme parte de cualquier objeto) para preparar y realizar pedidos. Los métodos de objeto se llaman así:

$the_Object->the_Method();

La DOP te permite preparar el código SQL antes de su ejecución. La consulta SQL se evalúa y corregido antes de ser ejecutado. Se puede realizar un ataque de inyección SQL simplificado simplemente escribiendo el código SQL en un campo de un formulario. Por ejemplo:

// User writes this in the username field of a login form
john"; DROP DATABASE user_table;

// The final query becomes this
"SELECT * FROM user_table WHERE username = john"; DROP DATABASE user_table;

Dado que existe un código SQL sintácticamente correcto, el punto y coma hace que DROP DATABASE user_table una nueva consulta SQL y su tabla se elimina. Las declaraciones preparadas no permiten comillas (“) y punto y coma (;) al final de la solicitud original y la declaración maliciosa DROP DATABASE nunca se ejecutará.

nunca debe utilizar declaraciones preparadas al enviar o recibir datos de la base de datos de la DOP.

Para usar declaraciones preparadas, debe escribir una nueva variante que llame al método preparar () objeto de base de datos.

En el código correcto:

<?php $servername = "mysql.hostinger.com"; $database = "u266072517_name"; $username = "u266072517_user"; $password = "buystuffpwd"; $sql = "mysql:host=$servername;dbname=$database;"; $dsn_Options = [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION];

// Create a new connection to the MySQL database using PDO, $my_Db_Connection is an object
try { 
  $my_Db_Connection = new PDO($sql, $username, $password, $dsn_Options);
  echo "Connected successfully";
} catch (PDOException $error) {
  echo 'Connection error: ' . $error->getMessage();
}

// Set the variables for the person we want to add to the database
$first_Name = "Thom";
$last_Name = "Vial";
$email = "thom.v@some.com";

// Here we create a variable that calls the prepare() method of the database object
// The SQL query you want to run is entered as the parameter, and placeholders are written like this :placeholder_name
$my_Insert_Statement = $my_Db_Connection->prepare("INSERT INTO Students (name, lastname, email) VALUES (:first_name, :last_name, :email)");

// Now we tell the script which variable each placeholder actually refers to using the bindParam() method
// First parameter is the placeholder in the statement above - the second parameter is a variable that it should refer to
$my_Insert_Statement->bindParam(:first_name, $first_Name);
$my_Insert_Statement->bindParam(:last_name, $last_Name);
$my_Insert_Statement->bindParam(:email, $email);

// Execute the query using the data we just defined
// The execute() method returns TRUE if it is successful and FALSE if it is not, allowing you to write your own messages here
if ($my_Insert_Statement->execute()) {
  echo "New record created successfully";
} else {
  echo "Unable to create record";
}

// At this point you can change the data of the variables and execute again to add more data to the database
$first_Name = "John";
$last_Name = "Smith";
$email = "john.smith@email.com";
$my_Insert_Statement->execute();

// Execute again now that the variables have changed
if ($my_Insert_Statement->execute()) {
  echo "New record created successfully";
} else {
  echo "Unable to create record";
}

En las lineas 28, 29 y 30, usamos el método bindParam () objeto de base de datos. También hay un método bindValue () que es bastante diferente.

  • bindParam () – Este método evalúa los datos cuando el método ejecutar () Se alcanza. La primera vez que el script llega a un método ejecutar () él ve que el $ first_Name corresponde a “Thom”, vincula ese valor y ejecuta la consulta. Cuando el script alcanza el segundo método execute (), ve el $ first_Name ahora corresponde a “John”, vincula ese valor y vuelve a ejecutar la consulta con los nuevos valores. Lo que es importante recordar es que definimos la consulta una vez y la reutilizamos con diferentes datos en diferentes puntos del script.
  • bindValue () – Este método evalúa los datos tan pronto como bindValue () Se alcanza. Como el valor de $ first_Name se estableció en “Thom” cuando el bindValue () se ha logrado, se utilizará cada vez que un método ejecutar () está llamado a $ my_Insert_Statement.

Note que usamos la variante $ first_Name y le dimos otro valor la segunda vez. Si verifica la base de datos después de ejecutar el script, tendrá ambos nombres definidos, a pesar de la variable $ first_Name ser equivalente a “John” al final del guión. Recuerde que PHP evalúa todo el script antes de ejecutarlo.

Si actualiza el script y lo reemplaza bindParam con bindValue, ingresará “Thom Vail” dos veces en la base de datos y se ignorará “John Smith”.

Cómo confirmar una operación exitosa y resolver errores comunes

Si la solicitud que ejecutamos e insertamos en la base de datos MySQL funcionó, verá un mensaje como el siguiente. Básicamente, dice que la conexión se realizó con éxito y también se creó un nuevo registro con éxito. En otras palabras, conseguiste insertar datos PHP MySQL.

Connect Successfully
New record created successfully

Cómo solucionar errores comunes

Sin embargo, hay situaciones en las que el nuevo registro presentará un error con la inserción de SQL. Pero no se preocupe, hay algunas formas de corregir estos errores de MySQL.

MySQLi

En cualquier otro caso, aparecerá una imagen de error. Por ejemplo, cometemos un error de sintaxis en nuestro código y el mensaje que aparecerá es algo muy similar al de abajo.

Connect successfully
Error: INSERT INTO students {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', 'Test@testingcom')' at line 1"

Como podemos ver, la primera parte de nuestro código está bien. La conexión se estableció con éxito, pero nuestra Consulta SQL encontró un error.

"Error: INSERT INTO Students {name, lastname, email} VALUES ('Thom', '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 ('Thom', 'Vial', 'thom.v@some.com')' at line 1"

Hay un error de sintaxis que desafortunadamente hizo que fallara nuestro script. El error estaba aquí:

$sql = "INSERT INTO Students {name, lastname, email} VALUES ('Thom', 'Vial', 'thom.v@some.com')";

Como puede ver, usamos las llaves “{}” en lugar de las llaves “[]”. Y eso no es correcto, algo que hizo que nuestro script señalara el error y no se ejecutara.

RFQ Cómo usar PHP para insertar datos en una base de datos MySQL

En la línea 7 de la conexión PDO, el modo de error se establece en mostrar todas las excepciones. Si esto se hubiera dejado fuera del script y la solicitud hubiera fallado, no habría recibido ningún mensaje de error. Con las excepciones habilitadas, es el problema específico el que aparece, aumentando tus posibilidades de solucionarlo.

Esto solo debe usarse al desarrollar un script, ya que puede exponer los nombres de la base de datos y la tabla. Algo que quizás prefiera ocultar de cualquier tipo de intento malicioso de acceder a sus datos. En el caso anterior donde se usaron las claves en lugar de los corchetes, el error se parece al código siguiente.

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 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 ('Thom', 'Vial', 'thom.v@some.com')' at line 1"

Otros posibles problemas que puede encontrar:

  • Columnas especificadas incorrectamente (columnas inexistentes o mal escritas).
  • Se asigna un tipo de valor a otro tipo de columna. Por ejemplo, si intentamos asignar el número “47 ” en columna Nombre, encontraremos un error porque debe ser un valor de cadena. Pero si se da un número entre comillas, por ejemplo “47”, Eso funcionaría porque nuestro número funcionaría porque nuestro número se asignaría como una cadena a la columna.
  • Intente insertar datos en una tabla que no existe o cometa errores tipográficos.

Todos estos errores se pueden corregir fácilmente si sigue las instrucciones del mensaje de error o si corrige los mensajes de error.

Después de agregar datos con éxito, deberíamos verlos agregados a nuestra base de datos. Aquí hay un ejemplo de una tabla y agregamos nuestros datos como se ve desde phpMyAdmin.

Conclusión

En este tutorial, aprendió cómo insertar datos en MySQL con PHP utilizando MySQLi y RFQ. También aprendió a solucionar problemas de conexión comunes. Insertar datos en MySQL con PHP es extremadamente útil para cualquiera que esté aprendiendo a codificar o construir un sitio web.