Menú
Está libre
registrarse
el principal  /  Navegantes / Agregando a MySQL a través de PHP. Cómo grabar en la base de datos MySQL usando el código PHP

Añadiendo a mysql a través de php. Cómo grabar en la base de datos MySQL usando el código PHP

Comentarios transferidos del blog

Sergante
14/09/2016 a las 01:25
¡Buenas tardes!
Interesado en tal pregunta: ¿cómo organizar fácilmente el almacenamiento de datos y la configuración del programa sin usar la base de datos? No quiero atarme a MySQL o ACCESS ..

Administración.
14/09/2016 a las 22:14
¡Hola!

Propiedades.tsettings.
App.config
Archivo xml.
Publicación por entregas
Intenta elegir algo de esto desde la lista.

Nikolai
16/09/2016 a las 02:28.
Hola, cómo eliminar la cadena seleccionada en DataGridView desde DataGridView y PhpMyAdmin.

Phpmyadmin? Esto es solo un shell para trabajar con la base de datos, ¿puedes explicar?

Nikolai
18/09/2016 a las 02:24.
Es necesario que la cadena dedicada se elimine de DataGridView y de la base de datos.

Administración.
19/09/2016 a las 07:00
Cómo eliminar una cadena en la base de datos MySQL: agregó un artículo.

Nikolai
20/09/2016 a las 09:20
Muchas gracias.

Dima
20/09/2016 a las 10:24
Hola, puedo este método Implementar no a través de DataGridView, sino a través de ComboBox? ¿Si es así, cómo? Gracias.

Administración.
22/09/2016 a las 03:21
Hola. Ejemplo:

Gennady
22/09/2016 a las 18:25
¿Por qué debería ingresar la base de datos de System.Windows.Forms.TextBox, Text: GE

A la pila, este (GE) hasta el final se escribe el gen. Al menos en la configuración de la tabla, se especifica el texto. El geneto debe estar en forma más ajial. Llevo esta tabla a mi programa y resulta que se muestra. Yo todo este texto innecesario.

Administración.
24/09/2016 a las 04:17.
Lo más probable es que la consulta SQL está escrita incorrectamente, por ejemplo:

En TextBox1 Ingrese un nombre: Gene.

Consulta de SQL: "Inserte en los valores de la tabla de nombres (TextBox1, ..)"; Resultado: System.Windows.Forms.TextBox.

Y debe transmitir: "Inserte en el nombre de la tabla de valores (TextBox1.Text, ..)";
Resultado: GENA

Gennady
24/09/2016 a las 18:41
Así es como es. Gracias

Sergante
25/09/2016 a las 11:51
Hola. ¿Y cómo implementar suministro a la base de datos a través de un cuadro de texto?

Administración.
26/09/2016 a las 20:53
De todos modos en principio. Por ejemplo, tome el último ejemplo, necesita:

// crear parámetros y agregarlos a la colección cmd.parameters.addwithvalue ("@ nombre", textbox1.text); cmd.parameters.addwithvalue ("@ upName", TextBox2.Text);

ahora parámetros: Nombre y apellido Obtenga valores ingresados \u200b\u200ben TextBox-S y transmítalos a la base de datos

Linara
27/09/2016 a las 17:45.
Hola, ¿cómo se encuentra la cadena seleccionada en DataGridView y PhpMyAdmin?

Administración.
29/09/2016 a las 02:06.
No sé cómo puede resaltar la línea en phpmyadmin. Y en DataGridView, por ejemplo, esto se puede hacer utilizando el evento SelectionChanged.

PSH.
30/09/2016 a las 03:48.
2 CABLE:
Si desea editar tanto las filas, tome la herramienta A LA HEDISQL, configure y cambie las líneas.

2Admin.
¡Buenos días! Gracias por los materiales, todo es muy bueno).
Pregunta: Agrego datos a esta solicitud (es prueba):

STRING SQL \u003d "Inserte en los usuarios (` FIO`, `Tour`,` Cuenta`, `Costo`,` Fecha ', `Pasaporte", "Pasaporte", "Nacimiento") ("Kolyan", "Moscú", "1 + 1 ", 1100," 2011-11-11 "," 1111 1111 "," 9.11.1900 ");";

Los datos se hacen todos bien, pero en la base de datos (MySQL) en lugar de cirrillic resultan ser "????".

Visual Studio dijo que System.String es una secuencia de Unicode.

También lo intentó:

Altere la base de datos `Prueba 'Collate" koi8r_general_ci "; Altere Table 'Usuarios' Collate \u003d "koi8r_general_ci"; Altere la base de datos `Prueba 'Collate" utf8_unicode_ci "; Altere Table 'Usuarios' Collate \u003d "utf8_unicode_ci";

Pero no ayuda ..
¿Qué puede estar mal? ¿Diferentes vs codificación y base de datos? ¿O que?
Podría enviar esa lectura / cambio.
Gracias

Administración.
10/01/2016 a las 09:49.
Hola.

En la base de datos (y en la tabla), el UTF_GENERAL_CI coincidente

¿Hay tal comparación? Tal vez utf8_general_ci?

Por lo general, cree una base de datos MySQL eligiendo una comparación UTF8_GENERAL_CI, por lo que no hay problemas con Cyrillic, a menos que el cliente provenga del cliente al servidor.

La colación se utiliza para la comparación, y en este caso la codificación es importante (caracteres de caracteres). Por lo tanto, primero debe asegurarse de que se configura en el servidor correctamente, por ejemplo, en UTF8, y no latin1.

Cuando se conecta a través del conector .NET (predeterminado) usado latin1, por lo que a veces es necesario especificar explícitamente en la cadena de conexión UTF8:

MySQLConnection Mycon; Mycon \u003d nuevo mysqlconnection ("servidor \u003d 127.0.0.1; uid \u003d vasya; pwd \u003d 123; base de datos \u003d prueba; caracteres \u003d utf8;"); // mysqlconnectionstringbuilder: mysqlcsb.characterset \u003d "utf8";

PSH.
10/01/2016 a las 11:34.
Usted está bien, descrito, utf8_general_ci!
SÍ AYUDADO,; CHARSTS \u003d UTF8;
Gracias ogmno!

Sergiy
10/02/2016 a las 11:02.
Gracias por el ejemplo de trabajo, a la derecha. Pregunta
Creé un campo de texto al que me gustaría ingresar una dirección de la base de datos, pero no sé cómo sustituir estos datos aquí

Cadena constr \u003d " [Correo electrónico protegido]; Usuario \u003d prueba; "+
"Base de datos \u003d prueba; contraseña \u003d prueba;";
Por favor, dígame cómo insertar datos de los campos de texto en el formulario de Windows en este diseño ...

Administración.
03.10.2016 a las 11:50
"[Correo electrónico protegido]; Usuario \u003d ...
En general, es mejor usar las propiedades en este artículo como en este artículo, o el método String.Format ()

OLGA2203.
15/05/2017 a las 20:14

Cadena connect \u003d "servidor \u003d 127.0.0.1; puerto \u003d 3306; base de datos \u003d base; fuente de datos \u003d localhost; usuario \u003d raíz;"; MySQLConnection Con \u003d New MySQLConnection (Conectar); con .OPEN (); // Instale la conexión a la base de datos. Mysqlcommand cmd \u003d nuevo mysqlcommand (); cmd.commandtext \u003d @ "Insertar en Tovar (Identificación, categoría, nombre, marca registrada, Precio, Foto, Tamaño, Color, Material, Conde) Valores (@PR, @Category, @Name, @Trademark, @Precice, @ photo, @size, @color, @material, @count) "; cmd.parameters.addwithValue ("@ pr", contador); cmd.parameters.addwithvalue ("@ categoría", combobox1.selecteditem.Tostring ()); cmd.parameters.addwithvalue ("@ nombre", textbox1.text); cmd.parameters.addwithvalue ("@ marca registrada", textbox2.text); cmd.parameters.addwithvalue ("@ precio", convertir.Toint32 (Texto de texto)); cmd.parameters.addwithvalue ("@ photo", textbox3.text); cmd.parameters.addwithvalue ("@ tamaño", textbox6.text); cmd.parameters.addwithvalue ("@ color", textbox5.text); cmd.parameters.addwithvalue ("@ material", textbox8.text); cmd.parameters.addwithValue ("@ contar", convertir.toint32 (TextBox7.Text)); cmd.connection \u003d con; cmd.executenonopery (); MessageBox.show ("La adición fue exitosa", "La adición fue exitosa", MessageBoxButtons.Ok, MessageBoxon.asterisk);

El error "La columna" ID "no se puede emitir", elimina la adición de la ID a la columna, lo mismo acerca de las escrituras de la siguiente columna, etc.
Si pone algún valor constante entre paréntesis en valores, la cadena se agrega a la base de datos.
Dime, por favor, ¿cuál es el problema? Necesito registrar datos y valores en la base de datos.

Última actualización: 1.11.2015

Para agregar datos para usar la expresión "Insertar":

$ Consulta \u003d "Inserte en los valores de los Tovars (NULL", Samsung galaxia Iii, "Samsumg") ";

La expresión "Insertar" inserta una línea en la tabla. Después indicio En indica el nombre de la tabla, y después de los valores entre paréntesis indican un conjunto de valores para todas las columnas. Como tenemos tres columnas en la tabla, especificamos tres valores.

Dado que en el último tema al crear una tabla, indicamos la siguiente secuencia de la columna: ID, nombre, compañía, luego en este caso, el valor nulo se transmite a la columna ID, para su nombre "Samsung Galaxy III", y para el Empresa - "Samsumg".

Dado que la columna de ID se define como AUTO_INCREMENT, no necesitamos especificar un cierto valor numérico para él, y puede pasar el valor nulo, y MySQL asigna el siguiente valor accesible.

Ahora considere agregar datos al ejemplo. Crear un archivo create.php. Con los siguientes contenidos:

Datos agregados";) // Cerrar la conexión de mysqli_close ($ enlace);)?\u003e

Añadir un nuevo modelo

Ingrese el modelo:

Fabricante:

Aquí, el código de interacción con la base de datos se combina con la funcionalidad de los formularios: con la ayuda del formulario, ingresamos los datos para agregar a la base de datos.

Seguridad y MySQL

Aquí utilizamos la función mysqli_real_escape_string (). Sirve para detectar símbolos en una fila, que luego se usa en solicitud de SQL. Como parámetros, acepta un objeto de conexión y una cadena que debe protegerse.

Por lo tanto, aplicamos el blindaje de la pantalla en realidad dos veces: primero para expresiones SQL utilizando la función MySQLI_REAL_ESCAPE_STRING (), y luego para HTML usando la función HTMLenties (). Esto nos permitirá defender directamente de dos tipos de ataques: ataques XSS y inyecciones de SQL.

En este artículo discerniremos, quizás, uno de los más importantes. Consultas de SQL. eso solicitudes para agregar y eliminar registros de la tabla de la base de datos. Ya que, muy a menudo tiene añadir nuevas entradas a la tabla, y hazlo en modo automaticoSe requiere que este material sea estudiado.

Para comenzar Solicitud de SQL para agregar nueva grabación en mesa:

Inserte en los valores de los usuarios (inicio de sesión, pase) ("TestUser", "123456")

Al agregar una entrada, el equipo viene al principio ". INSERTAR EN", Luego, el nombre de la tabla en la que insertamos el registro. El siguiente va a las cabezas de los campos, que queremos llenar. Y luego entre paréntesis después de la palabra" valores."Inicio enumeramos los valores de los campos que hemos elegido. Después de ejecutar esta solicitud, aparecerá una nueva entrada en nuestra tabla.

A veces requerido actualizar la entrada en la tabla.Para esto hay lo siguiente Solicitud de SQL:

Actualice los usuarios establecidos login \u003d "testuser2", pass \u003d "1234560" donde se inicia sesión \u003d "testuser"

Esta solicitud es más difícil, ya que tiene un diseño " Dónde", Pero al respecto, justo debajo. Al principio hay un equipo" Actualizar.", Luego el nombre de la mesa, y después" COLOCAR."Describimos los valores de todos los campos que queremos cambiar. Sería simple, pero surge la pregunta:" ¿Qué tipo de grabación debe ser actualizado?". Para esto existe" Dónde"En este caso, actualizamos la entrada, el campo" acceso."Lo cual es importante" Testuser.". Tenga en cuenta que si hay varios registros, entonces absolutamente todo será actualizado.! Es muy importante entender, de lo contrario, usted arriesgue a perder su mesa.

Vamos a hablar un poco sobre " Dónde"Además de los controles simples en la igualdad, también hay desigualdades, así como operaciones lógicas: Y. y O..

Actualizar usuarios establecidos inicio de sesión \u003d "testuser2", pass \u003d "1234560" donde id< 15 AND login="TestUser"

La Solicitud de SQL Actualizar esos registros identificación que son menos 15 Y campo " acceso."Tiene el significado" Testuser."Espero que hayas tratado con el diseño" Dónde", Porque es muy importante. Es" Dónde"Usado por registros de muestreo de tablas.Y esta es la tarea más de uso cuando se trabaja con bases de datos.

Y, finalmente, simple Solicitud de SQL para eliminar registros de la tabla:

Eliminar de los usuarios donde login \u003d "testuser2"

Después del equipo " Eliminar de"Hay un nombre de la tabla en la que desea eliminar registros. A continuación, describa el diseño" donde ". Si el registro cumplirá con las condiciones descritas, se eliminará. Nuevamente, preste atención, dependiendo de la cantidad de registros que satisface la condición después de " Dónde", Cualquier cantidad de su número puede ser eliminada.


La lección se basará en formulario realimentación Necesario prácticamente cualquier sitio.

Paso uno: Creando una base de datos en Mysql

Abierto phpmyadmin. (Entra en el paquete base Denwer`a), y cree una base de datos con el título" test_base.", Elijo la codificación" cp1251_general_ci".

Segundo paso: Creando la mesa B. Mysql vía Solicitud de SQL

Puedes crear una tabla, por supuesto, con herramientas estándar phpmyadmin.Pero la estructura de la tabla que se está creando será visible.

Crea una tabla con el título " test_table"Y con seis campos con nombres:
"Nombre": los usuarios se almacenarán aquí;
"Email": las direcciones se almacenarán aquí cajas electrónicas usuarios;
"Tema": el sujeto del mensaje se almacenará aquí;
"Mensaje": los mensajes se almacenarán aquí;
"Datos": la fecha de envío del mensaje se almacenará aquí;
"ID" - Número de identificación del registro (cadenas), campo clave.

SQL QUERY:
Crear tabla test_table (
ID int (11) no nulo auto_increment,
Nombre Varchar (255) No nulo,
Correo electrónico varchar (255) no nulo,
Theme Varchar (255) No nulo,
Mensaje de mensaje no nulo,
Fecha de datos no nula,
Clave primaria (ID)
);

Paso tres: Creando un formulario

index.html:

Forma con ahorro en MySQL

Formulario de ejemplo con ahorro de datos en MySQL

























Enviando pedido
Nombre:
Correo electrónico:
Asunto del mensaje:
Mensaje:
























Paso cuatro: Creando un manipulador de formulario " save_form.php."Con la preservación de los datos obtenidos en Mysql

save_form.php:





/ * Tabla MySQL en la que se almacenarán los datos * /
$ tabla \u003d "test_table";

/ * Crear una conexión * /

/ * Determinar la fecha actual * /
$ cdate \u003d fecha ("y-m-d");

/ * Hacer una solicitud para insertar información en la tabla
Nombre ... Fecha - El nombre de los campos específicos en la base de datos;
En $ _post ["test_name"] ... $ _post ["test_mess"]: estas variables contienen datos obtenidos del formulario * /
$ QUERY \u003d "Inserte en $ Nombre del conjunto de tabla \u003d" ". $ _ Publique [" Test_Name "]." ", Email \u003d". "$ _ Publicar [" Test_mail "]." ",
TEMA \u003d "". $ _ Publicar ["Test_Theme"]. "", Mensaje \u003d "". $ _ Publicar ["test_mess"]. "", DATOS \u003d "$ CDATE" ";

/ * Cerrar la conexión * /
mysql_close ();

/ * En caso de ahorro exitoso, visualice el mensaje y reembolso enlace * /
Eco ("


¡Datos guardados con éxito!



Vuelve
");

Pitch Quinto: Conclusión de datos guardados " view_data.php."

view_data.php:

/ * Conecte la base de datos * /
$ hostName \u003d "localhost"; // Título / Ruta del servidor, con MySQL
$ nombre de usuario \u003d "raíz"; // Nombre de usuario (en Denwer`e por defecto "Root")
$ contraseña \u003d ""; // la contraseña del usuario (en Denwer`e por defecto, falta la contraseña, este parámetro se puede dejar en blanco)
$ dbname \u003d "test_base"; // Nombre de la base de datos


$ tabla \u003d "test_table";

/ * Crear una conexión * /
Mysql_connect ($ hostName, $ nombre de usuario, $ contraseña) o muere ("I Concepto de Calce");

/ * Seleccione la base de datos. Si se produce un error, salítalo * /
mysql_select_db ($ dbname) o die (MySQL_Error ());

/ * Hacer una solicitud para extraer datos de los campos "Nombre", "Correo electrónico", "Tema",
"Mensaje", "Datos" Tabla "Test_Table" * /
$ QUERY \u003d "Seleccione ID, nombre, correo electrónico, tema, mensaje, datos desde $ tabla";

/ * Realizar una solicitud. Si se produce un error, salga. * /


Eco ("

Salida de datos de MySQL

Retirando datos previamente guardados de la tabla MySQL










");



Eco "

\\ n ";
Eco " \\ n ";
Eco " \\ n ";
Eco " \\ n ";
Eco " \\ n ";
Eco " \\ n ";
Eco " \\ N.\\ n ";
}

Eco ("

# Fecha de la aplicación. Nombres de usuarios Usuarios de correo electrónico Asunto del mensaje Mensajes de usuarios
"$ ROW [" ID "]"."$ Fila [" datos "]".. "$ Show [" nombre "]".. "$ Fila [" Email "]"."$ fila [" tema "]".". $ Fila [" Mensaje "]".
\\ n ");

/ * Cerrar la conexión * /
mysql_close ();

Paso seis: Eliminar registros de la base de datos " del_data.php."

del_data.php:

/ * Conecte la base de datos * /
$ hostName \u003d "localhost"; // Título / Ruta del servidor, con MySQL
$ nombre de usuario \u003d "raíz"; // Nombre de usuario (en Denwer`e por defecto "Root")
$ contraseña \u003d ""; // la contraseña del usuario (en Denwer`e por defecto, falta la contraseña, este parámetro se puede dejar en blanco)
$ dbname \u003d "test_base"; // Nombre de la base de datos

/ * Mesa MySQL en la que se almacenan los datos * /
$ tabla \u003d "test_table";

/ * Crear una conexión * /
Mysql_connect ($ hostName, $ nombre de usuario, $ contraseña) o muere ("I Concepto de Calce");

/ * Seleccione la base de datos. Si se produce un error, salítalo * /
mysql_select_db ($ dbname) o die (MySQL_Error ());

/ * Si se ha presionado el enlace de eliminación, elimine la entrada * /
$ del \u003d $ QUERY \u003d "Eliminar desde $ Tabla donde (id \u003d" $ del ")";
/ * Realizar una solicitud. Si se produce un error, salga. * /
Mysql_query ($ consulta) o morir (mysql_error ());



/ * Realizar una solicitud. Si se produce un error, salga. * /
$ Res \u003d mysql_query ($ consulta) o morir (mysql_error ());

$ fila \u003d mysql_num_rows ($ res);

/ * Mostrar datos de la tabla * /
Eco ("

Mostrar y eliminar datos de MySQL

Muestra y elimina los datos guardados previamente de la tabla MySQL











");

/ * Ciclo de salida de datos de la base de campos específicos * /
Mientras ($ fila \u003d mysql_fetch_array ($ res)) (
Eco "

\\ n ";
Eco " \\ n ";
Eco " \\ n ";
Eco " \\ n ";
Eco " \\ n ";
Eco " \\ n ";
Eco " \\ n ";
/ * Generamos un enlace para eliminar el campo * /
Eco " \\ n ";
Eco "\\ n ";
}

Eco ("

# Fecha de la aplicación. Nombres de usuarios Usuarios de correo electrónico Asunto del mensaje Mensajes de usuarios Eliminación
"$ ROW [" ID "]"."$ Fila [" datos "]".. "$ Show [" nombre "]".. "$ Fila [" Email "]"."$ fila [" tema "]".". $ Fila [" Mensaje "]".Borrar
\\ n ");

/ * Cerrar la conexión * /
mysql_close ();

Paso séptimo: Edición y actualización de entradas en la base de datos " update_data.php."

update_data.php:

/ * Conecte la base de datos * /
$ hostName \u003d "localhost"; // Título / Ruta del servidor, con MySQL
$ nombre de usuario \u003d "raíz"; // Nombre de usuario (en Denwer`e por defecto "Root")
$ contraseña \u003d ""; // la contraseña del usuario (en Denwer`e por defecto, falta la contraseña, este parámetro se puede dejar en blanco)
$ dbname \u003d "test_base"; // Nombre de la base de datos

/ * Mesa MySQL en la que se almacenan los datos * /
$ tabla \u003d "test_table";

/ * Crear una conexión * /
Mysql_connect ($ hostName, $ nombre de usuario, $ contraseña) o muere ("I Concepto de Calce");

/ * Seleccione la base de datos. Si se produce un error, salítalo * /
mysql_select_db ($ dbname) o die (MySQL_Error ());

/ * Si el botón Editar ha sido presionado, realice cambios * /
if (@ $ someth_edit) (
$ QUERY \u003d "Actualice $ Set Name Name \u003d" $ test_name ", correo electrónico \u003d" $ test_mail ", tema \u003d" $ test_theme ", mensaje \u003d" $ test_mess "donde id \u003d" $ actualización "";
/ * Realizar una solicitud. Si se produce un error, salga. * /
Mysql_query ($ consulta) o morir (mysql_error ());
}

/ * Ingresamos la variable $ RS la base de datos completa * /
$ QUERY \u003d "Seleccione * desde $ TABLE";
/ * Realizar una solicitud. Si se produce un error, salga. * /
$ Res \u003d mysql_query ($ consulta) o morir (mysql_error ());
/ * Averiguaremos el número de entradas en la base de datos * /
$ fila \u003d mysql_num_rows ($ res);

/ * Mostrar datos de la tabla * /
Eco ("

Edición y actualización de datos.

Edición y actualización de datos en la tabla MySQL.


");

/ * Ciclo de salida de datos de la base de campos específicos * /
Mientras ($ fila \u003d mysql_fetch_array ($ res)) (
Eco "

\\ n ";
Eco " \\ n ";
Eco " \\ n ";
Eco " \\ n ";
Eco " \\ n ";
Eco "\\ n ";
Eco " \\ n ";
Eco "\\ n ";
Eco " \\ n ";
Eco "\\ n ";
Eco " \\ n ";
Eco "\\ n ";
Eco " \\ n ";
Eco "\\ n ";
Eco " \\ n ";
Eco "
# "$ fila [" ID "]".
"$ Fila [" datos "]".
Nombre de usuario:
Usuario de correo electrónico:
Asunto del mensaje:
Mensaje:
\\ N \\ n ";
}

/ * Cerrar la conexión * /
mysql_close ();

Bueno, eso es todo, una codificación agradable: 1133:

_________________________________

En este artículo, veremos cómo usar PHP para insertar filas a la base de datos MySQL.

Paso 1 - Creación de una tabla

Primero necesitas crear una tabla para los datos. eso procedimiento simpleque se puede realizar utilizando PHPMYAdmin en el panel de control de alojamiento.

Después de ingresar su PHPMYAdmin, verá una interfaz de este tipo:
Cree una tabla con el nombre del estudiante en la base de datos U266072517__Name haciendo clic en el botón "Crear tabla". Después de eso veremos nueva paginaen el que especifique todos los parámetros necesarios de la tabla:

Esto es lo más configuración simpleque se puede utilizar para la mesa y recibir para más información En la estructura de tablas / bases de datos.

Parámetros de la columna:

  • El nombre es el nombre de la columna que se muestra en la parte superior de la tabla.
  • Tipo - Tipo de columna. Por ejemplo, elegimos varchar porque entraremos en valores de cadena.
  • Longitud / Valores: se usan para indicar la longitud máxima, que se puede grabar en esta columna.
  • Índice: utilizamos el índice "primario" para el campo "ID". Al crear una tabla, se recomienda aplicar solo una columna como una clave principal. Se utiliza para enumerar las entradas en la tabla y se requiere al configurar la tabla. También noté "A_I", lo que significa "incremento automático": el parámetro de asignación automática de la grabadora (1,2,3,4 ...).
    Haga clic en el botón Guardar, y se creará la tabla.

Paso 2. Escribir un código PHP para insertar datos en MySQL.

Opción 1 - Método MySQLI

Primero necesitas establecer una conexión a la base de datos. Después de eso, use la solicitud de inserción SQL. Código de muestra completa:

". MySQLi_Error ($ Conn);) MySQLI_CLOSE ($ CONN);?\u003e

La primera parte del código (3 - 18 fila) está diseñada para conectarse a la base de datos.

Vamos a empezar desde la línea número 19:

$ Sql \u200b\u200b\u003d "Insertar en los valores de los estudiantes (nombre, apellido, correo electrónico) (" THOM "," Vial "," [Correo electrónico protegido]")";

Inserta datos en la base de datos MySQL. Insertar en un operador que agrega los datos a la tabla especificada. En nuestro ejemplo, los datos se agregan a la tabla de estudiantes.

La siguiente es la lista de columnas en las que se insertan los valores: nombre, apellido, correo electrónico. Los datos se agregarán en el orden especificado. Si escribimos (correo electrónico, apellido, nombre), los valores se agregarían en otro orden.

La siguiente parte es el operador de valores. Aquí especificamos los valores para las columnas: NOMBRE \u003d THOM, apellido \u003d frasco, correo electrónico \u003d [Correo electrónico protegido]

Lanzamos una solicitud usando el código PHP. EN código de programa Las solicitudes de SQL deben estar protegidas con cotizaciones. La siguiente parte del código (20-22 fila) verifica si nuestra solicitud fue exitosa:

if (MySQLI_QUERY ($ CONN, $ SQL)) (ECHO "NUEVO RECIBIRCORECIONECIONTUDIBLE";)

Este código muestra un mensaje sobre la consulta exitosa.

Y la última parte (22 - 24 fila) muestra la notificación si la solicitud no fue exitosa:

otra cosa (eco "Error:". $ Sql \u200b\u200b".
". MySQLi_Error ($ Conn);)

Opción 2 - Método de objeto de datos PHP (PDO)

Primero, debemos conectarnos a la base de datos creando un nuevo objeto PDO. Cuando se trabaja con él, usaremos varios métodos de PDO. Los métodos de los objetos son causados \u200b\u200bde la siguiente manera:

$ The_object-\u003e the_method ();

PDO le permite "preparar" código SQL antes de ejecutarlo. La solicitud de SQL se evalúa y se "corrige" antes de lanzar. Por ejemplo, el ataque más simple que usa la inyección de SQL se puede realizar a través de una introducción simple del código SQL en el campo Formulario. Por ejemplo:

Dado que está sintácticamente, el código SQL correcto, un punto de coma hace que una base de datos de DROP se pueda usar con una nueva consulta SQL, y se elimina la tabla personalizada. Las expresiones preparadas (variables relacionadas) no permiten que el punto de comilla y punto de comillas complete la solicitud de origen. Por lo tanto, el comando de la base de datos de la caída nunca se ejecutará.

Para usar las expresiones preparadas, debe escribir una nueva variable que llama al método Prepare () del objeto de la base de datos.

Código correcto:

getmessage (); ) // Establecer las variables para la persona que queremos agregar $ first_name \u003d "thom" a la base de datos; $ last_name \u003d "vial"; $ correo electrónico \u003d " [Correo electrónico protegido]"; // Crear una variable que causa la consulta de preparación de la base de datos () // Query SQL que desea realizar se ingresa como un parámetro, y los rellenos se escriben de la siguiente manera: PlaceHolder_Name $ My_insert_Statement \u003d $ my_db_connection-\u003e Prepare (" Insertar En los alumnos (nombre, apellido, correo electrónico) valores (: first_name,: last_name ,: El parámetro es un relleno en el operador anterior, la segunda es una variable a la que debe referir $ my_insert_statement-\u003e bindparam (: first_name, $ first_name); $ my_insert_statement-\u003e bindparam (: last_name, $ last_name); $ my_insert_statement-\u003e bindparam (: Email, $ correo electrónico); // Realizar una consulta con los datos que acaba de determinar // Ejecutar () devuelve VERDADEROS si es exitoso y falso, si no, le brinda la posibilidad de mostrar su propio mensaje. ($ My_insert_Statement-\u003e Ejecutar ()) (eco "nuevo reco. rdcreatedsucativamente "; ) De lo contrario (eco "incapaz de crear creerecord";) // En este punto, puede cambiar estas variables y ejecutar la solicitud para agregar otros datos a los datos a la base de datos FIRT_NAME \u003d "John"; $ Last_Name \u003d "Smith"; $ correo electrónico \u003d " [Correo electrónico protegido]"; $ My_insert_statement-\u003e Ejecutar (); // Realizar nuevamente cuando se cambia la variable si ($ my_insert_statement-\u003e Ejecutar ()) (Echo" nuevo registrado en la succión ";) otra cosa (eco" incapaz de crear creerErecord ";

En las líneas 28, 29 y 30, utilizamos el método Bindparam () del objeto de la base de datos. También hay un método en bindvalue (), que es muy diferente de la anterior.

  • bindparam (): este método estima los datos cuando se alcanza el método de ejecución. Por primera vez, cuando el script llega al método Ejecutar (), ve que $ First_Name corresponde a "THOM". Luego se une este valor y comienza la solicitud. Cuando el script llega al segundo método Ejecutar (), ve que $ FIRST_NAME ahora corresponde a "John". Después de eso conecta este valor y nuevamente comienza una solicitud con nuevos valores. Es importante recordar que una vez definimos la solicitud y la reutilizamos con diferentes datos en diferentes puntos del script.
  • bindvalue (): este método evalúa los datos tan pronto como se logra enlice (). Desde $ First_Name, el valor "THOM" se estableció en Bindvalue (), se utilizará cada vez que se requiera el método Ejecutar () por $ my_insert_statement.
    Tenga en cuenta que reutilizamos la variable $ FIRT_NAME y nos asignamos un nuevo valor por segunda vez. Después de iniciar el script en la base de datos, se especificarán ambos nombres, a pesar de que la variable de $ FIRST_NAME al final del script es "John". Recuerde que PHP comprueba todo el script antes de ejecutarlo.

Si actualiza el script para reemplazar Bindparam en Bindvalue, se inserta dos veces en la base de datos "THOM FRANTER", y se ignorará a John Smith.

Paso 3 - Confirmación de implementación exitosa y resolver problemas.

Si la consulta para insertar filas en la base de datos fue exitosa, veremos el siguiente mensaje:

Eliminando errores comunes

Mysqli.

En cualquier otro caso, se mostrará un mensaje de error. Por ejemplo, hagamos un error sintáctico en el código, y obtendremos lo siguiente:

La primera parte del código está en orden, la conexión se estableció con éxito, pero la solicitud de SQL no pasó.

"Error: inserte en los valores de los estudiantes (nombre, apellido, correo electrónico) (" THOM "," Vial "," [Correo electrónico protegido]") Usted tiene un error en su sintaxis SQL; verifique que el manualThatCorrponse a su versión de MySQL Server para los valores de RightSyNtax para usar" (nombre, apellido, correo electrónico) ("THOM", "Vial", " [Correo electrónico protegido]")" En la línea 1 "

Se ha realizado un error de sintaxis que causó un fallo de guión. El error fue aquí:

$ Sql \u200b\u200b\u003d "Insertar en los valores de los estudiantes (nombre, apellido, correo electrónico) (" THOM "," Vial "," [Correo electrónico protegido]")";

Utilizamos soportes rizados en lugar de lo normal. Es incorrecto, y el script emitió un error sintáctico.

Pdo

En la Línea 7 Conexiones de PDO para el conjunto de modo de error "Mostrar todas las excepciones". Si se especifica otro valor, y la solicitud no tendría éxito, no recibiríamos ningún mensaje de error.

Esta configuración debe usarse solo cuando se desarrolle el script. Cuando está activado, se pueden mostrar los nombres de la base de datos y las tablas que es mejor ocultar con fines de seguridad. En el caso descrito cuando, en lugar de los soportes convencionales utilizados rizados, el mensaje de error se ve así:

ERROR FATAL: UNCAGHTEXCEY "PDOException" con mensaje "SQLSTATE: Error de sintaxis o AccessViolation: 1064 TIENE UN ERROR EN SU SINTAX SQL; compruebe que el manualThatCorrponse a su versión de MySQL Server para los valores de RightSyNtax para usar cerca "(nombre, apellido, correo electrónico) (" THOM "," Vial "," [Correo electrónico protegido]")" En la línea 1 "

Otros problemas posibles:

  • Las columnas están indicadas incorrectamente (columnas inexistentes o errores de ortografía en sus nombres).
  • Se le asigna un tipo de valor. Otra columna Tipo. Por ejemplo, si intenta insertar el número 47 en la columna Nombre, obtendremos un error. En esta columna, debe usar un valor de cadena. Pero si señalamos un número en citas (por ejemplo, "47"), funcionaría, porque es una cadena.
  • Intentando ingresar datos en una tabla que no existe. Así como un error de ortografía admitido en el nombre de la tabla.

Después de la entrada de datos exitosa, veremos que se agregan a la base de datos. A continuación se muestra un ejemplo de una tabla en la que se agregan los datos.

Conclusión

En este artículo, le dijimos a cómo usar PHP para insertar datos en la base de datos MySQL utilizando MySQLI y PDO. Y también sobre cómo eliminar errores comunes. Estos conocimientos serán útiles en la programación de aprendizaje y al desarrollar su propio sitio web.

Esta publicación es la traducción del artículo ". Cómo usar PHP para insertar datos en la base de datos MySQL"Preparado por un equipo de proyecto amistoso.