Cómo cargar imágenes en la base de datos MySQL usando el código PHP

Estoy tratando de guardar imágenes en mi base de datos desde un formulario HTML. He escrito código PHP para realizar esta tarea. El progtwig no genera ningún mensaje de error, pero tampoco inserta datos de imagen en la base de datos MySQL. Por favor verifíquelo. Aquí estoy compartiendo un fragmento de mi código.

/*------------------- IMAGE QUERY ---------------*/ $file =$_FILES['image']['tmp_name']; if(!isset($file)) { echo 'Please select an Image'; } else { $image_check = getimagesize($_FILES['image']['tmp_name']); if($image_check==false) { echo 'Not a Valid Image'; } else { $image = file_get_contents ($_FILES['image']['tmp_name']); $image_name = $_FILES['image']['name']; if ($image_query = mysql_query ("insert into product_images values (1,'$image_name',$image )")) { echo $current_id; //echo 'Successfull'; } else { echo mysql_error(); } } } /*----------------- IMAGE QUERY END ---------------------*/ 

File :

Mensaje de error Tiene un error en su syntax SQL; revise el manual que corresponde a su versión del servidor MySQL para la syntax correcta para usar cerca de ” en la línea 1

En primer lugar, debe verificar si su columna de imagen es de tipo BLOB .

No sé nada sobre su tabla SQL, pero si intentaré hacer la mía como ejemplo.

Obtuvimos los campos id (int), image (blob) y image_name (varchar (64)).

Así que el código debería verse así (suponiendo que la ID siempre es ‘1’ y usemos esta mysql_query):

 $image = addslashes(file_get_contents($_FILES['image']['tmp_name'])); //SQL Injection defence! $image_name = addslashes($_FILES['image']['name']); $sql = "INSERT INTO `product_images` (`id`, `image`, `image_name`) VALUES ('1', '{$image}', '{$image_name}')"; if (!mysql_query($sql)) { // Error handling echo "Something went wrong! :("; } 

Lo estás haciendo mal de muchas maneras. No use las funciones de mysql, ¡están en desuso! Use PDO o MySQLi . También debe pensar en almacenar ubicaciones de archivos en el disco. Se cree que usar MySQL para almacenar imágenes es Bad Idea ™. Manejar la tabla SQL con grandes datos como imágenes puede ser problemático.

Además, su formulario HTML está fuera de los estándares. Debe tener un aspecto como este:

 

Nota al margen:

Al tratar con archivos y almacenarlos como un BLOB, los datos deben escaparse utilizando mysql_real_escape_string() , de lo contrario, se producirá un error de syntax.

Solo algunos detalles más :

  • Añadir campo mysql

`image` blob

  • Obtener datos de la imagen

$image = addslashes(file_get_contents($_FILES['image']['tmp_name']));

  • Insertar datos de imagen en db

$sql = "INSERT INTO `product_images` (`id`, `image`) VALUES ('1', '{$image}')";

  • Mostrar imagen en la web

  • Fin
 First, you should not try to store the image in the database. Because this is not the right method to do. IF you want to then code is.  

Para recuperar

  $sql = "select image from images where id=1"; $result = mysqli_query($con,$sql); $row = mysqli_fetch_array($result); $image_src2 = $row['image']; ?>  

Cómo INSERTAR EN DB?

   Uploads         "; } else { echo"Move_uploaded_file function failed for".$name_array[$i]."
"; } } } ?>