Saltar al contenido
Closer Marketing

Cómo insertar datos en MySQL con PHP – paso a paso

Insertar datos

En esta guía aprenderá cómo inserción Datos en la base de datos MySQL desde el script PHP Puede utilizar dos métodos, MySQLi y PDO. Antes de comenzar este tutorial de inserción de datos PHP MySQL, debe visitar el panel de control de su alojamiento.

Si no está seguro de cómo configurar una conexión MySQL, puede consultar este tutorial de PHP-MySQL que cubre los pasos más importantes en el uso de PHP y una base de datos.

Crear tabla (opcional)

Primero necesitas crear una tabla para tus datos. Si ya los ha creado, desplácese hacia abajo hasta la siguiente sección. Crear una tabla es un proceso simple, puedes usar esta opción para hacerlo phpMyAdmin Puede encontrarlo en el panel de control del host.

phpmyadmin y hosting

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

Host-phpmyadmin-vista

Crearemos una tabla llamada estudiantes Para nuestra base de datos u266072517_name… Puede crear una nueva tabla haciendo clic en el botón Crear mesaDespués de eso, verá esta nueva página donde puede completar toda la información requerida para el formulario:

Host-phpmy-admin-crear-base de datos

Esta es la configuración más simple que puede usar para tablas. Para obtener más información sobre la estructura de la tabla / base de datos y qué configuración puede usar para estas columnas, lea la documentación oficial de phpMyAdmin.

Ahora algunas explicaciones simples de las columnas utilizadas:

  • Apellido: Este es el nombre de su columna. Aparecerá en la parte superior de su tabla.
  • Tipo de: Aquí puede establecer el tipo de columna, por ejemplo, elegimos Signo variable Porque tenemos que ingresar un carácter de nombre de tipo cadena aquí (tiene letras, no números).
  • Longitud / valor: Se utiliza para indicar la longitud máxima que pueden tener los registros en esta columna.
  • índice: Usamos el índice «Principal» como el campo «ID». Se recomienda que utilice una columna de ID al crear una tabla. Se utiliza para enumerar los registros en una tabla y es necesario para establecer relaciones entre tablas. Yo también comprobé «AI«, Sentido AutoincrementoSe utiliza para la numeración automática de registros (1,2,3,4 …).

prensa ahorrar Guarde y se creará su tabla.

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

Puede utilizar dos métodos para insertar datos en la base de datos MySQL. Método PHP MySQLi y objeto de datos PHP o método PDO.

Método MySQLi

Primero debe leer nuestro tutorial anterior sobre cómo conectarse a una base de datos y cuando haya terminado, podemos pasar a la consulta de MySQL. inserciónAquí hay un código de muestra completo, incluidos los métodos básicos de conexión e inserción:

<?php
$servername = "mysql.hostinger.co.uk";
$database = "u266072517_name";
$username = "u266072517_user";
$password = "buystuffpwd";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $database);
// Check connection
if (!$conn) {
      die("Connection failed: " . mysqli_connect_error());
}
 
echo "Connected successfully";
 
$sql = "INSERT INTO Students (name, lastname, email) VALUES ('Test', 'Testing', '[email protected]')";
if (mysqli_query($conn, $sql)) {
      echo "New record created successfully";
} else {
      echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
?>

Entonces, la primera parte del código (línea 3 a 18) Diseñado para conectarse a la base de datos. No cubriremos esta parte nuevamente, pero si desea saber el significado de cada línea de código, consulte nuestro tutorial anterior sobre cómo conectarse a una base de datos.

Comencemos con el número de línea. 19:

$sql = "INSERT INTO Students (name, lastname, email) VALUES ('Test', 'Testing', '[email protected]')";

Esta es la línea más importante del código PHP, ya que controla la inserción de datos en la base de datos MySQL. inserción Operador para agregar datos a la tabla de base de datos especificada En nuestro ejemplo, estamos agregando datos a la tabla estudiantes

Si continuamos, tenemos, entre paréntesis, determinadas columnas de la tabla a las que podemos sumar valores: (Nombre, apellidos, correo electrónico)Las fechas se agregarán en el orden indicado. Cuando escribimos (Correo electrónico, apellido, nombre)Estos valores se agregan en un orden diferente.

La siguiente parte es una declaración. valoresAquí damos nuestro valor para la columna dada anteriormente. Por tanto, cada columna representa un valor determinado. En nuestro ejemplo se ve así: Nombre = prueba, apellido = prueba, correo electrónico = [email protected]

También vale la pena señalar que recién estamos comenzando. Consulta SQL (Consulta SQL) Cuando se usa código PHP, la consulta SQL debe colocarse entre comillas, en nuestro ejemplo todo está entre comillas y después $ sql = Esta es una consulta SQL.

La siguiente parte del código (línea 20 hasta 22) Compruebe si nuestra solicitud se ha realizado correctamente:

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

Si la solicitud que hemos procesado tiene éxito, solo se mostrará un mensaje de éxito.

La última parte (línea 22 a 24) Si la solicitud no tiene éxito, muestre varios mensajes:

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

Si algo sale mal, aparecerá un mensaje de error.

Métodos PHP Data Object (PDO)

Como en el ejemplo anterior, primero debemos conectarnos a la base de datos creando un nuevo objeto PDO. Este tutorial le mostrará cómo hacerlo. Dado que la conexión de la base de datos MySQL es un objeto PDO, habrá varios método PDO (cualquier función que pertenezca a cualquier objeto) para preparar y ejecutar consultas. El método del objeto se llama de la siguiente manera:

$the_Object->the_Method();

PDO permitido melodía Código SQL antes de ejecutarlo, evalúe la consulta SQL y fiel Antes de que comience. Los ataques de inyección SQL simples se pueden llevar a cabo escribiendo código SQL en campos de 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 gramaticalmente correcto, el punto y coma no Eliminar tabla de usuarios de la base de datos Esta es una nueva consulta SQL y su tabla de usuario ha sido eliminada. La declaración preparada no permite ningún carácter « con ; Complete la solicitud original y las instrucciones maliciosas. Eliminar base de datos Nunca comenzará.

siempre Cuando se usa PDO, se deben usar declaraciones preparadas para enviar o recibir datos de la base de datos.

Para usar una declaración preparada, debe escribir una nueva variable que llame al método Preparar () Objetos 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 = "Test";
$last_Name = "Testing";
$email = "[email protected]";
// 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 = "[email protected]";
$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 línea 28, 29 con treintaUsamos el método Parámetro de enlace () Objetos de base de datos Hay métodos Valor del bono () Es muy diferente.

  • Parámetro de enlace () -El método evalúa los datos cuando llega al método darse cuenta ()… primer script del método de llegada darse cuenta (),Ver $ Nombre Coincide con «prueba», vincula el valor y ejecuta la solicitud. Cuando el guión llega al segundo método darse cuenta (),Ver $ Nombre Ahora coincide con «John», vincula el valor y vuelve a ejecutar la consulta con el nuevo valor. Recuerde, definimos la consulta una vez y luego la reutilizamos con diferentes datos en diferentes lugares del script.
  • Valor del bono () -Este método evalúa los datos tan pronto como llegan Valor del bono ()Como valor $ Nombre Definido como una «prueba» a la llegada Valor del bono ()Esto se usa cada vez que se llama al método darse cuenta () al $ my_Insert_Statement

Tenga en cuenta que hemos reutilizado las variables PS Nombre de pila Le daremos un nuevo valor por segunda vez. Si verifica su base de datos después de ejecutar este script, tendrá dos nombres definidos, incluso si la variable es $ Nombre Corresponde a «John» al final del guión. Recuerde que PHP evalúa todo el script antes de ejecutarlo.

Cuando actualiza el script para ser reemplazado Opciones de ajuste con Costos asociadosAgrega MySQL «Test Testing» a la base de datos dos veces y se ignora a John Smith.

Confirmamos que todo es normal y resolvemos problemas típicos

Si la consulta que estamos ejecutando e insertando en la base de datos MySQL es exitosa, veremos el siguiente mensaje:

Connect Successfully
New record created successfully

Correcciones de errores generales

Sin embargo, a veces los registros nuevos pueden mostrar errores al insertar desde SQL. Pero no se preocupe, hay varias formas de corregir estos errores de MySQL.

MySQLi

Si recibe un error de MySQLi, estos son los métodos que puede utilizar para resolverlo. Por ejemplo, si su código contiene un error de sintaxis, verá algo como esto:

Connect successfully
Error: INSERT INTO students {name, lastname, email} VALUES ('Test', 'Testing', '[email protected]')
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', '[email protected]')' at line 1"

Como puede ver, la primera parte del código está bien, la conexión fue exitosa, pero nuestra consulta SQL se topó con obstáculos.

"Error: INSERT INTO Students {name, lastname, email} VALUES ('Thom', 'Vial', '[email protected]') 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', '[email protected]')' at line 1"

Hay un error de sintaxis que desafortunadamente conduce a un error en nuestro script. El error está aquí:

$sql = "INSERT INTO Students {name, lastname, email} VALUES ('Thom', 'Vial', '[email protected]')";

Usamos corchetes en lugar de simples. Debido a que esto es incorrecto, el script arroja un error de sintaxis.

DOP

Conexión PDO de la línea 7, modo de error establecido en Mostrar todas las excepcionesSi esto no se especifica en el script y la solicitud falla, no recibirá un mensaje de error. Cuando las excepciones están habilitadas, se muestran ciertas preguntas.

Por lo general, esto solo debe usarse al desarrollar scripts, ya que puede hacer públicos los nombres de la base de datos y las tablas y es posible que desee ocultarlos de cualquier persona que intente acceder a sus datos de manera malintencionada. Si usa corchetes arriba en lugar de corchetes regulares, el error se ve así:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access 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 ('Thom', 'Vial', '[email protected]')' at line 1"</code>

Otros posibles problemas que puede encontrar:

  • Columna especificada no válida (falta la columna o está mal escrita).
  • Un valor de un tipo asignado a un tipo de columna diferente. Por ejemplo, cuando intentamos asignar un número 47 A la lista de nombres (Apellido), obtenemos un error porque debe ser un valor de texto. Sin embargo, si asigna un número entre comillas, por ejemplo, «47» Esto funciona porque nuestro número está asignado a la columna como texto.
  • Se intentó ingresar datos en una tabla que no existe o se produjo un error de ortografía en la tabla.

Todos estos errores se pueden solucionar fácilmente siguiendo las instrucciones del mensaje de error o comprobando el error_log.

Después de ingresar con éxito los datos, deberíamos ver la información agregada a la base de datos, este es un ejemplo de una tabla a la que agregaremos datos a medida que los veamos. phpMyAdmin

Insertar datos MySQL

Finalmente

En este tutorial, aprendió a PHP al inserción Datos en la base de datos MySQL usar MySQLi con DOPTambién aprendió a solucionar los errores de conexión más comunes. Si está aprendiendo a codificar o crear un sitio web, es muy útil saber cómo usar PHP para insertar datos en una base de datos MySQL.