sql >> Base de Datos >  >> RDS >> Mysql

PHP no inserta contenido en la base de datos mySQL:texto, imágenes, cualquier cosa

Tu código está fallando por dos razones.

  • Su declaración condicional está buscando un elemento con nombre llamado "enviar"
  • Está intentando ejecutar antes de la declaración. Coloque su consulta (mysqli_query() )"abajo " los valores y haz mysqli_query($dbCon, $userREQ3) or die(mysqli_error($dbCon));

Nota al margen:Cambiar if ($_POST['submit']) { a if (isset($_POST['submit'])) { es mejor.

y <input type="submit" value="Write Post"/>
a <input type="submit" name="submit" value="Write Post"/>

Inyección SQL:

Su código actual está abierto a inyección SQL . Use mysqli con declaraciones preparadas , o PDO con declaraciones preparadas .

Además, tiene variables en el cuerpo de su código, lo que puede arrojar una variable x indefinida en la carga de la página inicial.

Como se indica (en los comentarios a continuación):asegúrese de haberse conectado a su base de datos y utilizando un método mysqli y no otra API.

Las diferentes API de MySQL no se mezclan entre sí. Utilice la misma API de MySQL desde la conexión hasta la consulta.

Agregue informe de errores en la parte superior de su(s) archivo(s), lo que ayudará a encontrar errores.

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// rest of your code

Nota al margen: El reporte de errores solo debe hacerse en staging, y nunca en producción.

Consulta exitosa o no:

Para ver si la consulta fue exitosa o falló, busque errores y use affected_rows .

Referencias:

Si estaba tratando de usar imágenes, se requiere que se incluya un enctype válido en las etiquetas del formulario.

Dependiendo de cómo/qué quisieras insertar para las imágenes, eso podría ser un factor.

Si desea insertar la imagen como una ruta es una cosa, pero usarla "como una imagen", diga un BLOB, entonces eso tiene limitaciones de tamaño; use LONGBLOB y debe escapar de esos datos antes de ingresar a la base de datos.

Consultar: