Menú
Gratis
Registro
hogar  /  Multimedia/ Cómo usar PHP para insertar filas en una base de datos MySQL. Escribir datos en MySQL: para hacer que la canción del código suene Php ingresando datos en la base de datos

Cómo usar PHP para insertar filas en una base de datos MySQL. Escribir datos en MySQL: para hacer que la canción del código suene Php ingresando datos en la base de datos

En este tutorial, veremos cómo insertar datos en la base de datos directamente desde sus scripts PHP.

Insertar datos usando SQL

Usas SQL para insertar datos en una base de datos de la misma manera que usas SQL para crear una base de datos y tablas. La sintaxis de consulta SQL es:

INSERTAR EN TableName (columna1, columna 2, ...) VALORES(valor1, valor 2, ...)

Como puede ver, puede actualizar varias columnas en una sola instrucción SQL especificándolas en una lista separada por comas. Pero, por supuesto, también puede especificar solo una columna y un valor. Las columnas que no se mencionan en la instrucción SQL dada permanecerán vacías.

Ejemplo: Insertar una nueva persona en una tabla

En este ejemplo, estamos usando la base de datos de la Lección 18. Digamos que queremos insertar una persona en la base de datos. Podría ser gus ganso con número de teléfono 99887766 y fecha de nacimiento 1964-04-20 .

instrucción SQL podría verse así:

$strSQL = "INSERT INTO people(FirstName,LastName,Phone,BirthDate) VALUES("Gus","Goose","99887766 ","1964-04-20"");

Como puede ver, las sentencias SQL pueden ser bastante largas y es fácil perder el rumbo. Por lo tanto, es mejor escribir la instrucción SQL de forma ligeramente diferente:

strSQL = "INSERTAR EN personas("; strSQL = strSQL. "Nombre de pila"; strSQL = strSQL. "Apellido" strSQL = strSQL. "teléfono"; strSQL = strSQL. "nacimiento)"; strSQL = strSQL. "VALORES("; strSQL = strSQL . ""Gus", "; strSQL = strSQL. ""Ganso", "; strSQL = strSQL. ""99887766", "; strSQL = strSQL. ""1964-04-20""); mysql_query($strSQL) o die(mysql_error());

Aquí, la declaración SQL se construye dividiendo la oración en partes pequeñas y luego combinándolas en una variable $strSQL.

En la práctica, no hay diferencia en la aplicación de uno u otro, pero cuando se trabaja con tablas grandes, la capacidad de "hacer un seguimiento" se vuelve extremadamente importante, así que elija el método más adecuado.

Intentemos ejecutar el siguiente código para insertar Gus Goose en la base de datos:

Inserción de datos en la base de datos. // Conectar con el servidor de la base de datos mysql_connect("mysql.myhost.com", "usuario", "sesame") o die(mysql_error());//Seleccionar base de datos mysql_select_db("mibase de datos") o die(mysql_error()); // Construyendo sentencia SQL $strSQL = "INSERTAR EN personas("; $cadenaSQL = $cadenaSQL . "Nombre de pila"; $cadenaSQL = $cadenaSQL . "Apellido"; $cadenaSQL = $cadenaSQL . "teléfono"; $cadenaSQL = $cadenaSQL . "Fecha de nacimiento)"; $cadenaSQL = $cadenaSQL . "VALORES("; $cadenaSQL = $cadenaSQL . "Gus", "; $cadenaSQL = $cadenaSQL . ""Ganso", "; $cadenaSQL = $cadenaSQL . ""99887766", "; $cadenaSQL = $cadenaSQL . ""1964-04-20""); // se ejecuta la sentencia SQL mysql_query($strSQL) o die(mysql_error()); // Cerrando la conexión mysql_close(); ?>

Base de datos actualizada!

Guardar la entrada del usuario en la base de datos

Probablemente ya descubrió que puede crear un formulario para esto, como en la Lección 11, y los valores del formulario se pueden insertar en la instrucción SQL. Digamos que tienes un formulario simple:

Este formulario se envía a un archivo insertar.php donde, como se muestra en la Lección 11, puede obtener información del usuario solicitando el contenido del formulario. En esto caso específico La instrucción SQL podría tener este aspecto:

strSQL = "INSERT INTO people(FirstName) valores("" . $_POST["FirstName"] . "")"

Del mismo modo, puede solicitar datos de cookies, sesiones, cadenas de consulta, etc.

Errores de principiante más comunes

Al principio, probablemente recibirá un montón de mensajes de error cuando intente actualizar la base de datos. Cuando se trabaja con una base de datos, ningún error es absolutamente inaceptable. Una coma colocada incorrectamente puede significar que la base de datos no se está actualizando y recibirá un mensaje de error. A continuación describimos los errores más comunes.

Tipo de datos no válido

Es importante que los datos y el tipo de datos de la columna coincidan. Cada columna puede contener datos de un cierto tipo. La siguiente captura de pantalla muestra los tipos de datos de la tabla "personas" de nuestro ejemplo.

Se arroja un error si, por ejemplo, intenta insertar texto o un número en un campo de datos. Por lo tanto, establezca el tipo de datos con la mayor precisión posible.

Los tipos de datos más utilizados se enumeran a continuación:

Significado Tipo de datos Tamaño
CDH
Texto o una combinación de texto y números. También se puede utilizar para números que no se utilizan en los cálculos (por ejemplo, números de teléfono). Hasta 255 caracteres: cualquier longitud especificada en "Longitud"
TEXTO
Grandes bloques de texto o una combinación de texto y números. Hasta 65.535 caracteres
EN T
Datos numéricos para cálculos matemáticos. 4 bytes
FECHA
Fechas en formato AAAA-MM-DD 3 bytes
TIEMPO
Hora en formato hh:mm:ss 3 bytes
FECHA Y HORA
Fecha y hora en formato AAAA-MM-DD hh:mm:ss 8 bytes

Sentencias SQL con comillas o barras invertidas

Si intenta pegar texto que contiene comillas simples ("), doble comillas("") o una barra diagonal inversa (\), el registro no se insertará en la base de datos. La solución es sustituir las barras diagonales inversas antes de los caracteres que deben ser mnemónicos cuando se insertan en las consultas de la base de datos.

En esta lección, aprenderemos cómo ingresar a la base de datos MySql, los datos ingresados ​​por el usuario en el formulario. Aprenderá a conectarse a la base de datos MySql desde el código de la página web, así como a procesar e ingresar datos en la base de datos.


En la última lección, le dije cómo instalar Denver en su computadora, cómo crear su propia base de datos, un usuario para ella, cómo crear una tabla en la base de datos y la llenamos con un registro.

En este tutorial crearemos documento html para ingresar la información del usuario, y archivo php- el procesador de esta información, que procesará los datos, se conectará a la base de datos MySql e insertará allí nuevos registros.

Pasando de las palabras a los hechos, comencemos.

Agregar datos de usuario a la base de datos MySql desde una página web

Primer paso: crear formulario html para la entrada de datos

Desde el principio, debemos prepararnos para trabajar con php, MySql y probar el código escrito en computadora local. Para esto:

1. Inicie Denwer en su computadora.

2. abierto disco virtual, creado por Denver (por ejemplo, mi disco es "Z"). Ábralo, luego: home - localhost - www - créelo allí nueva carpeta y asígnele un nombre (lo nombraré "db1").

3. Si trabaja en Adobe Dreamweaver, vaya al administrador del sitio, haga clic en el botón "Nuevo", seleccione la ruta a la carpeta recién creada como ruta, en el campo de arriba puede dar un nombre al sitio, luego haga clic en Guardar - Listo. Después de todo esto, su carpeta aparecerá en el panel derecho de Adobe Dreamweaver.

1. Ahora vamos a crear un regular archivo html(Llamémoslo info_form.html y guárdelo en la carpeta db1 recién creada) y escriba el código de formulario allí para ingresar información. En nuestra tabla de usuarios de la base de datos new_db, hay 4 campos que un usuario puede completar (el campo de identificación se completará automáticamente). En base a esto, puede crear el siguiente código:

Documento sin titulo










Aquí, en el parámetro “acción” de nuestro formulario, se registra el archivo formulario.php. Será el archivo de controlador que crearemos a continuación.

También vamos a crear un archivo style.css para darle estilo a nuestro formulario. Ya está incluido en el código, así que solo queda crearlo, colocarlo en la misma carpeta que el archivo html y escribir en él el siguiente código:

Cuerpo (ancho: 400 px; margen: 0 automático; fondo: # F8F4B6;) etiqueta (pantalla: bloque; flotante: izquierda; ancho: 150 px; relleno: 0 10 px; margen: 18 px 0 0; alineación de texto: derecha;) # enviar (flotante: derecho; margen: 5px 50px 10px 0;)

Ahora el formulario se ve así:

Sin embargo, si ingresa los datos e intenta enviar el formulario, verá un error, porque no existe ningún archivo form.php en el directorio de scripts.

Crear un archivo de controlador es nuestra próxima tarea.

2. Vamos dentro de la carpeta db1 crear una carpeta llamada guiones. En él guardaremos todos nuestros scripts para interactuar con la base de datos MySql.

Una vez creada la carpeta, cree nuevo php y guárdelo en la carpeta de scripts como formulario.php.

Pero antes de que nos ocupemos directamente del archivo de procesamiento de información, primero debemos conectarnos a nuestra base de datos. Propongo crear para esto archivo separado y es por eso:

Lo más probable es que en su proyecto tenga que conectarse a la base de datos MySql no solo desde un archivo. Como regla general, interactúe con la base de datos. varios archivos proyecto.
Es muy poco práctico escribir el mismo código de conexión a la base de datos en cada uno de estos archivos. Y si hay, por ejemplo, 50 archivos de este tipo y un buen día le cambias la contraseña al usuario y tienes que buscar todos esos 50 archivos y hacer las correcciones en cada uno.
Es mucho más conveniente usar un archivo separado para la conexión, que se conectará a cada uno de los archivos donde debería haber una conexión con la base de datos MySql. En este caso, deberá realizar correcciones en un solo archivo.

Así que vamos a crear un nuevo archivo php, llamémoslo conectar.php y poner en la carpeta de scripts. En él escribiremos el código para conectarnos a nuestra base de datos MySql, así como el código que informará de los errores en caso de que se produzcan. Tenga en cuenta que deberá ingresar su nombre de usuario, su contraseña y el nombre de su base de datos como parámetros. El host debe ser localhost.

¡Error al conectarse a la base de datos! " .Error de MySQL() . "

"); mysql_select_db("new_db")//parámetro entre paréntesis ("nombre de la base de datos a la que conectarse") or die("

¡Error de selección de base de datos! ". Error de MySQL() . "

"); ?>

Ahora vayamos al archivo form.php e incluyamos el archivo connect.php usando el siguiente código:

Si intenta enviar el formulario ahora, verá una página web en blanco después de enviarlo. Esto es normal, ya que acabamos de conectarnos a la base y no muestra nada más por ahora.

Si ve un mensaje de error, verifique que todos los parámetros (nombre de usuario, contraseña, nombre de host: localhos, nombre de la base de datos) sean correctos y también asegúrese de que su Denver esté encendido.

3. Nos hemos conectado con éxito a la base de datos MySql, y ahora necesitamos aceptar los datos ingresados ​​en el formulario en nuestro archivo de manejador. Los atributos de "nombre" que están presentes en el documento html nos ayudarán con esto.

Para obtener datos, utilizamos un variables php, que nos facilita toda la información del formulario web. Esta variable se llama "$_REQUEST".

Escriba el siguiente código en el archivo form.php después de conectar el archivo connect.php:

$nombre_primero = $_SOLICITUD["nombre_primero"]; $apellido = $_SOLICITUD["apellido"]; $correo electrónico = $_SOLICITUD["correo electrónico"]; $facebook = $_SOLICITUD["facebook"];

4. Recibimos los datos en el archivo y los ingresamos en variables. ahora necesitas enviar estos datos a nuestra tabla de base de datos MySql. Para hacer esto, debe escribir el siguiente código a continuación:

$insert_sql = "INSERTAR EN usuarios (nombre, apellido, correo electrónico, facebook)" . "VALUES("($first_name)", "($last_name)", "($email)", "($facebook)");"; mysql_query($insertar_sql);

Aquí, primero formamos una consulta, diciendo que necesitamos insertar las variables apropiadas en los campos apropiados de la tabla de "usuarios". Ingresamos esta consulta en la variable “$insert_sql”. Y luego, usando la función especial mysql_query, ejecutamos esta consulta.

Si completa y envía el formulario ahora y luego busca en la tabla de "usuarios" de su base de datos, verá la nueva entrada que apareció allí después del envío.

5. Hemos insertado un nuevo registro de una página web en una tabla de base de datos MySql. Ahora quiero tocar un poco el formato en el que se insertan nuestros datos.

Primero, debe ocuparse de la situación en la que una persona que completa un formulario puede colocar espacios innecesarios al comienzo de ingresar información. Necesitan ser cortados.

En segundo lugar, tenemos un campo para Facebook. Si más tarde queremos mostrar esta información como un enlace, debemos tener cuidado de que los datos en este campo se almacenen en el formato correcto (es decir, "http://www.facebook.com/id de Facebook"). Pero el usuario no siempre introducirá estos datos como necesitamos. Puede ingresar: “www.facebook.com/facebook id”, “facebook.com/facebook id” o simplemente “/facebook id”.

Estas situaciones deben evitarse. Para hacer esto, corrijamos nuestro código. Recortaremos posibles espacios extra usando la función recortar, y la función verificará la corrección de la URL ingresada para facebook Preg_match. Por lo tanto, el código completo del archivo form.php se verá así:

Documento sin titulo ¡Se ha añadido una nueva entrada a la base de datos!

"; ?>

Acerca de la función Preg_match:
Esta es una función para buscar con expresiones regulares.

El primer parámetro entre paréntesis es expresión regular, la segunda es la cadena a buscar.

La función devuelve solo la primera coincidencia: 0 si no hay coincidencias, 1 si hay una coincidencia.

Ahora intente completar el formulario intencionalmente poniendo espacios innecesarios al comienzo de completar uno de los campos e ingresando la dirección de Facebook sin http:// o ingresando solo la ID de Facebook en total. Envíe una solicitud y luego vaya a la base de datos y verá que, a pesar del llenado no del todo correcto, los datos tienen exactamente el formulario que necesitamos.

voy a terminar con esto Esta lección. Puede descargar todos los archivos de esta lección en el código fuente (simplemente no olvide cambiar los parámetros por los suyos propios en el archivo connect.php).

Y en la próxima lección, aprenderemos cómo extraer información de la base de datos MySql, seleccionar los registros necesarios y mostrarlos en la pantalla. Para no perderte la próxima lección, suscríbete a las actualizaciones del blog utilizando el formulario de suscripción que ves a continuación.

Deja tus comentarios y comparte con tus amigos usando los botones de redes sociales.

¡Buena suerte y nos vemos en la próxima lección!

Última actualización: 1.11.2015

Para agregar datos, se utiliza la expresión "INSERTAR":

$consulta="INSERTAR EN VALORES DE BIENES(NULO, " Samsung galaxia III","Samsumg")";

La instrucción "INSERT" inserta una fila en la tabla. Después palabra clave INTO especifica el nombre de la tabla, y después de VALUES se especifica entre paréntesis el conjunto de valores para todas las columnas. Como tenemos tres columnas en la tabla, especificamos tres valores.

Dado que en el tema anterior, al crear una tabla, especificamos el siguiente orden de columnas: id, nombre, empresa, en este caso, se pasa NULL para la columna id y "Samsung" para el nombre Galaxia III", y para la compañía - "Samsumg".

Debido a que la columna id se define como AUTO_INCREMENT, no tenemos que especificar un valor numérico específico para ella, y podemos pasar un valor NULL y MySQL asignará el siguiente valor disponible a la columna.

Ahora veamos cómo agregar datos usando un ejemplo. Vamos a crear un archivo crear.php con el siguiente contenido:

Datos agregados"; ) // cerrar conexión mysqli_close($enlace); ) ?>

Agregar nuevo modelo

Introduzca el modelo:

Fabricante:

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

Seguridad y MySQL

Aquí hemos utilizado la función mysqli_real_escape_string(). Sirve para escapar caracteres en una cadena, que luego se usa en una consulta SQL. Toma como parámetros un objeto de conexión y una cadena a escapar.

Por lo tanto, en realidad usamos escape de caracteres dos veces: primero para la expresión sql usando la función mysqli_real_escape_string(), y luego para html usando la función htmlentities(). Esto nos permitirá protegernos de dos tipos de ataques a la vez: ataques XSS e inyecciones SQL.

En esta guía, aprenderá cómo comenzar a administrar una base de datos desde su PHP guion. aprenderás agregar un registro a una tabla MySQL, usando codigo php. Antes de comenzar, consulte nuestros otros tutoriales que cubren los pasos básicos para trabajar con PHP y bases de datos: conectarse desde PHP a una base de datos MySQL.

Antes de comenzar, verifique lo siguiente:

  • Accede a tu panel de control de hosting

Paso 1: crear una tabla

En primer lugar, necesitamos crear una tabla para sus datos. Este es un procedimiento muy simple que puedes hacer en phpMyAdmin desde el panel de control de tu hosting. Ya hemos cubierto el proceso de creación de una base de datos MySQL en un tutorial anterior, por lo que omitiremos ese punto aquí.

Después de ingresar a la página de phpMyAdmin, verá una imagen similar:

Vamos a crear una tabla llamada Estudiantes para nuestra base de datos u266072517_nombre. Puede crear una nueva tabla haciendo clic en el botón Crear mesa. Después de eso verás nueva pagina donde puede ingresar todos los datos requeridos para su tabla:

Esta es la forma más fácil de crear una tabla. Para obtener más información sobre la estructura de la tabla/base de datos y qué configuraciones se pueden usar para cada campo, consulte la documentación oficial de phpMyAdmin.

Aquí hay algunas explicaciones simples de los campos que usaremos:

  • Nombre es el nombre de su campo. Se mostrará en la parte superior de su mesa.
  • tipo– aquí puede establecer el tipo de campo. Por ejemplo, elegimos varchar, porque aquí necesitamos ingresar una cadena con un nombre (que tiene letras, no números).
  • Longitud/Valores– se utiliza para establecer la longitud máxima de su registro en este campo.
  • Índice– usamos el índice "Principal" para nuestro campo "ID". Cuando se crea una tabla, se recomienda tener un campo de ID. Se utiliza para indexar registros en una tabla cuando se establecen relaciones entre tablas. También se puede señalar aquí "AI", lo que significa Autoincremento. Esta configuración incrementará automáticamente el índice (1,2,3,4…).

Hacer clic Ahorrar y se creará su tabla.

Paso 2: generar el código PHP y agregar un registro a la tabla MySQL

Opción 1 - Método MySQLi

En primer lugar, debe establecer una conexión con la base de datos, de acuerdo con nuestra guía anterior. Después de eso, podemos continuar con la consulta SQL para agregar un registro a la tabla MySQL: INSERTAR. Aquí hay un ejemplo de código completo con una conexión y un método de inserción:

" . mysqli_error($conexion); ) mysqli_close($conexion); ?>

Así, la primera parte del código (líneas 3 – 18 ) forman parte del establecimiento de una conexión con la base de datos. No repasaremos esta parte nuevamente, si desea saber qué significa cada línea, consulte nuestro tutorial anterior sobre cómo conectarse a una base de datos.

Comencemos con la línea 19 :

$sql = "INSERTAR EN Alumnos (nombre, apellido, correo electrónico) VALORES ("Thom", "Vial", " [correo electrónico protegido]")";

Esta es la línea de código más importante, hace todo lo que describimos en este tutorial: agregar una entrada de tabla MySQL a la base de datos. INSERTAR EN es una expresión que agrega un registro a la tabla de base de datos MySQL especificada. En nuestro ejemplo, agregamos datos a la tabla Estudiantes.

Avanzando, entre paréntesis, definimos los campos de la tabla, los valores a los que sumaremos: (nombre, apellido, correo electrónico). Los datos se agregarán en un orden específico. si escribimos (email, apellido, nombre), los valores se agregarán en un orden diferente.

La siguiente parte del valor VALORES. Aquí establecemos nuestros valores a los campos previamente especificados. Por lo tanto, cada campo obtendrá su propio valor. Por ejemplo, en nuestro caso sería algo como: nombre=Thom, apellido=Vial, correo electrónico= [correo electrónico protegido] .

Es importante señalar que aquí formamos consulta SQL utilizando código PHP. Las consultas SQL deben ir entre comillas. En nuestro ejemplo, todo lo que está entre comillas y después de $sql = es una consulta SQL.

La siguiente parte del código ( 20 – 22 line) ejecuta nuestra consulta y verifica si la consulta fue exitosa:

If (mysqli_query($conn, $sql)) ( echo "Nuevo registro creado con éxito"; )

Se muestra un mensaje de éxito si la consulta se ejecutó correctamente.

y la parte final 22 – 24 líneas) muestran otro mensaje, en caso de que nuestra solicitud falle:

Else ( echo "Error: " . $sql . "
" .mysqli_error($conn); )

Este código nos muestra un mensaje de error en caso de que algo salga mal.

Opción 2: método de objeto de datos de PHP (objeto de datos de PHP)

Como en el ejemplo anterior, primero debemos realizar una conexión a la base de datos, lo cual se realiza al crear un nuevo objeto PDO; el tutorial anterior explica cómo hacerlo. Dado que la conexión de la base de datos MySQL es un objeto PDO, debemos usar varios "métodos" PDO (tipos de funciones que forman parte de un objeto en particular) para preparar y ejecutar la consulta. Los métodos de objetos se llaman así:

$el_Objeto->el_Metodo();

PDO le permite 'preparar' el código SQL antes de ejecutarlo. La consulta SQL se evalúa y ajusta antes de ejecutarse. Entonces, un simple ataque de inyección SQL se puede hacer completando el código SQL en el campo del formulario. Por ejemplo:

// El usuario escribe esto en el campo de nombre de usuario de un formulario de inicio de sesión thom"; DROP DATABASE user_table; // La consulta final se convierte en "SELECT * FROM user_table WHERE nombre de usuario = thom"; DROP DATABASE user_table;

Dado que el código SQL es sintácticamente correcto, el punto y coma hace DROP DATABASE user_table nueva consulta SQL y su tabla de usuario se elimina. Las expresiones preparadas no permiten caracteres Y ; para completar la solicitud original y las instrucciones SOLTAR BASE DE DATOS nunca será ejecutado.

Siempre utilice consultas preparadas cuando envíe o reciba datos de una base de datos con PDO.

Para usar expresiones preparadas, debe crear una nueva variable que llamará al método preparar() en el objeto de la base de datos.

El código correcto se parece a:

$nombreservidor = "mysql.hostinger.com"; $base de datos = "u266072517_nombre"; $nombre de usuario = "u266072517_usuario"; $contraseña = "buystuffpwd"; $sql = "mysql:host=$nombre del servidor;dbname=$base de datos;"; $dsn_Opciones = ; // Cree una nueva conexión a la base de datos MySQL usando PDO, $my_Db_Connection es un objeto try ($my_Db_Connection = new PDO($sql, $username, $password, $dsn_Options); echo "Conectado con éxito"; ) catch (PDOException $ error) ( echo "Error de conexión: " . $error->getMessage(); ) // Establecer las variables para la persona que queremos agregar a la base de datos $first_Name = "Thom"; $apellido = "Vial"; $correo = " [correo electrónico protegido]"; // Aquí creamos una variable que llama al método prepare() del objeto de la base de datos // La consulta SQL que desea ejecutar se ingresa como parámetro y los marcadores de posición se escriben así: nombre_marcador $my_Insert_Statement = $my_Db_Connection-> prepare("INSERT INTO Students (name, lastname, email) VALUES (:first_name, :last_name, :email)"); // Ahora le decimos al script a qué variable se refiere realmente cada marcador de posición usando el método bindParam() // Primero El parámetro es el marcador de posición en la instrucción anterior: el segundo parámetro es una variable a la que debe hacer referencia $my_Insert_Statement->bindParam(:first_name, $first_Name); $my_Insert_Statement->bindParam(:last_name, $last_Name); $my_Insert_Statement-> bindParam(:email, $email); // Ejecuta la consulta usando los datos que acabamos de definir // El método execute() devuelve VERDADERO si tiene éxito y FALSO si no, permitiéndote escribir tus propios mensajes aquí si ( $my_Insert_Statement->execute()) ( echo "Nuevo registro creado con éxito"; ) else ( echo "No se pudo crear el registro"; ) // En este punto puede cambiar los datos de las variables y ejecutar nuevamente para agregar más datos a la base de datos $first_Name = "John"; $apellido = "Smith"; $correo = " [correo electrónico protegido]"; $my_Insert_Statement->execute(); // Ejecutar nuevamente ahora que las variables han cambiado if ($my_Insert_Statement->execute()) ( echo "Nuevo registro creado con éxito"; ) else ( echo "No se pudo crear el registro"; )

En las líneas 28, 29 y 30 usamos el método enlazarParam() objeto de base de datos. También hay un método enlazarValor(), diferente al anterior.

  • enlazarParam() - este método cuenta los datos cuando el método ejecutar() logrado. La primera vez que el script llega al método. ejecutar() el ve eso $primer_nombre hace referencia a "Thom", vincula ese valor y ejecuta la consulta. Cuando el script llega por segunda vez al método ejecutar() el se ve asi $primer_nombre ahora hace referencia a "John", vincula ese valor y vuelve a ejecutar la consulta con el nuevo valor. Es importante comprender que creamos una solicitud una vez y luego sustituimos diferentes datos en diferentes lugares del script.
  • enlazarValor() - este método evalúa los datos tan pronto como la cola los alcanza. Dado que el valor $primer_nombre se dio como "Thom", en el momento en que llegamos al método enlazarValor(), se usará al llamar al método ejecutar() Para $my_Insert_Statement.

Tenga en cuenta que estamos reutilizando la variable $primer_nombre y darle un nuevo valor por segunda vez. Si revisa su base de datos después de ejecutar este script, ambos nombres dados estarán allí, a pesar del valor de la variable $primer_nombre será igual a "John" al final de este script. Recuerde que PHP evalúa el contenido de un script antes de ejecutarlo.

Si cambia su script reemplazando enlazarParam en enlazarValor, agregará "Thom Vial" a la base de datos MySQL dos veces y se ignorará a John Smith.

Paso 3: Comprobación del éxito y resolución de problemas comunes

Si la consulta que ejecutamos contra la base de datos MySQL fue exitosa, veremos un mensaje como este:

Solucionar errores comunes

mysqli

En cualquier otro caso, se mostrará un mensaje de error en lugar del mensaje anterior. Por ejemplo, cometamos un error de sintaxis en nuestro código y obtenemos esto:

Como podemos ver, la primera parte del código está bien, la conexión se estableció con éxito, pero nuestra consulta SQL falló durante la ejecución.

"Error: INSERTAR EN Alumnos (nombre, apellido, correo electrónico) VALORES ("Thom", "Vial", " [correo electrónico protegido]") Tiene un error en su sintaxis SQL; consulte el manual que corresponde a la versión de su servidor MySQL para conocer la sintaxis correcta para usar cerca de "(nombre, apellido, correo electrónico) VALORES ("Thom", "Vial", " [correo electrónico protegido]")" en la línea 1"

Hay un error de sintaxis que hace que nuestro script falle. El error estaba aquí:

$sql = "INSERTAR EN Alumnos (nombre, apellido, correo electrónico) VALORES ("Thom", "Vial", " [correo electrónico protegido]")";

Como puede ver, estamos usando llaves en lugar de llaves redondas. Esto es incorrecto y da como resultado un error de sintaxis en nuestro script.

DOP

En la línea 7 de la conexión PDO, el modo de manejo de errores está configurado para 'mostrar todas las excepciones'. Si elimina esto del script y la solicitud falla, no recibirá ningún mensaje de error. Con las excepciones habilitadas, se mostrarán los problemas específicos encontrados. En general, esto se usa mejor al desarrollar un script, ya que puede revelar nombres de bases de datos y tablas que le gustaría ocultar a cualquiera que pueda obtener Acceso no autorizado a tus datos En el caso anterior, cuando se usaron llaves en lugar de llaves redondas, el error se muestra a continuación:

Error fatal: excepción no detectada "PDOException" con el mensaje "SQLSTATE: error de sintaxis o infracción de acceso: 1064 Tiene un error en su sintaxis SQL; Consulte el manual que corresponde a la versión de su servidor MySQL para conocer la sintaxis correcta para usar cerca de "(nombre, apellido, correo electrónico) VALORES ("Thom", "Vial", " [correo electrónico protegido]")" en la línea 1"

Otros problemas que puede encontrar:

  • Campos especificados incorrectamente (campos inexistentes o errores ortográficos).
  • El tipo de valor no coincide con el tipo de campo. Por ejemplo, cuando queremos asignar el valor de un número 47 campo Nombre, obtendremos un error porque se supone que el valor es una cadena. Pero, si especifica un número entre comillas, por ejemplo, “47” , no habrá ningún error, porque nuestro número se escribirá como una cadena en este campo.
  • Se intentó ingresar datos en una tabla que no existe, o hubo un error ortográfico en el nombre de la tabla.

Todos estos errores se pueden solucionar siguiendo las guías de resolución de problemas o consultando el registro de errores.

Después de agregar con éxito los datos, deberíamos verlos en nuestra base de datos. Aquí hay un ejemplo de una tabla donde hemos agregado nuestros datos, como se ve en phpMyAdmin.

Conclusión

En esta guía, aprendiste a usar Código PHP para agregar registro a la tabla MySQL usando mysqli Y DOP. También se consideraron casos de errores comunes y sus soluciones. Saber cómo usar el código PHP para agregarlo a una base de datos MySQL será útil tanto si está aprendiendo a codificar como si ya está creando su propio sitio web.

En este post quiero contar cómo transferir a la base de datos, los datos ingresados ​​​​en el formulario. Y así creamos un formulario sencillo, donde tendremos dos campos: el nombre de usuario y su Correo electrónico:

Su nombre:
Tu correo electrónico:


Este formulario se puede utilizar para dar de alta un nuevo usuario, enviar noticias, recopilar estadísticas, y para cualquier cosa... En general, el usuario rellena este formulario con sus datos: nombre y correo, pulsa el botón y luego el los datos entran en el script php:

$nombre = $_POST["nombre"]; $correo electrónico = $_POST["correo electrónico"]; $resultado = mysqli_query("INSERTAR EN LOS VALORES del usuario (nombre, correo electrónico) ("$nombre", "$correo electrónico")"); if ($resultado) ( echo "¡Los datos se guardaron correctamente!"; ) else ( echo "Ocurrió un error, inténtelo de nuevo."; )


¿Qué sucede en este guión? ¡Ahora vamos a resolverlo!
Los datos ingresados ​​en el formulario Método POST vaya a la secuencia de comandos php (que está escrita arriba), y usando la matriz global $_POST, los datos se forman en las variables $name y $email:

$nombre = $_POST["nombre"]; $correo electrónico = $_POST["correo electrónico"];


Una vez que las variables están listas para ser ingresadas en la base de datos, redactamos una consulta. Pero primero, sus scripts ya deben estar conectados a la base de datos, cómo conectarse a la base de datos, escribí en este hilo:. La solicitud en sí se ve así:

$resultado = mysqli_query("INSERTAR EN LOS VALORES del usuario (nombre, correo electrónico) ("$nombre", "$correo electrónico")");


En este código, hemos indicado que se agregarán las siguientes variables a las celdas de nombre y correo electrónico que se encuentran en la tabla de usuario: $nombre y $correo electrónico.
Además, si todo salió bien, recibiremos un mensaje de la condición:

¡Datos guardados exitosamente!


Si hubo algún problema y no se ingresaron los datos, recibiremos un mensaje de error:

Ha ocurrido un error. Por favor intente otra vez.


¡Eso es todo!

*** *** *** *** ***

Si lo desea, puede agregar más campos para ingresar información, por ejemplo, necesitamos agregar un campo para ingresar la ciudad del usuario. Ya tenemos un script listo (escrito arriba), ahora solo agregamos un campo Tu ciudad, nombremos la variable: $ciudad . Y así en el formulario de entrada de datos, después de:

Tu correo electrónico:


agregar:

Tu ciudad:


EN secuencia de comandos php, después:

$correo electrónico = $_POST["correo electrónico"];


agregar:

$ciudad = $_POST["ciudad"];


Y por supuesto, también lo agregamos a la solicitud, así:

$resultado = mysqli_query("INSERT INTO usuario (nombre, correo electrónico, ciudad) VALORES ("$nombre", "$correo electrónico", "$ciudad")");


Esto es lo que debería ser el resultado final:
Formulario de entrada:

Su nombre:
Tu correo electrónico:
Tu ciudad:


Guion:

$nombre = $_POST["nombre"]; $correo electrónico = $_POST["correo electrónico"]; $ciudad = $_POST["ciudad"]; $resultado = mysqli_query("INSERT INTO usuario (nombre, correo electrónico, ciudad) VALORES ("$nombre", "$correo electrónico", "$ciudad")"); if ($resultado == verdadero) ( echo "¡Los datos se guardaron correctamente!"; ) else ( echo "Ocurrió un error, inténtelo de nuevo."; )


Como puedes ver, ¡nada complicado! Si es necesario, puede agregar otro campo, y otro, y otro ...