Estás Intento almacenar una imagen en una base de datos MySQL usando PHP, pero no funciona como se esperaba. Los datos de la imagen no se están insertando en la base de datos.
Compruebe si hay un problema de interpolación variable
En su consulta, está utilizando la función file_get_contents() para recuperar los datos de la imagen, pero no está concatenando explícitamente su resultado con la cadena de consulta. Como resultado, la consulta contiene la cadena "file_get_contents($tmp_image)" en lugar de los datos de la imagen real.
Solución 1: Concatenación explícita
Para concatenar la imagen datos correctamente, necesita saltar de la cadena y hacer las cosas explícitamente:
$sql = "INSERT INTO ImageStore(ImageId,Image) VALUES('$this->image_id','" . file_get_contents($tmp_image) . "')";
Manejar la desinfección
Si los datos de la imagen binaria contienen cualquier apóstrofe ('), puede interrumpir la consulta SQL. Para evitar esto, debe ejecutar los datos a través de la función mysql_escape_string para. desinfección:
$sql = "INSERT INTO ImageStore(ImageId,Image) VALUES('$this->image_id','" . mysql_escape_string(file_get_contents($tmp_image)) . "')";
Considere almacenamiento alternativo
Almacenamiento grande Los datos binarios (como imágenes) en las bases de datos MySQL pueden hacerlos voluminosos. Si es posible, considere usar un sistema de almacenamiento de archivos separado para las imágenes.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3