Foros del Web » Programando para Internet » PHP »

como insertar una imagen en mysql

Estas en el tema de como insertar una imagen en mysql en el foro de PHP en Foros del Web. la verdad he tratado y no me funciona y me sale un error este es el codigo: Código PHP: < td height = "47"  valign = ...
  #1 (permalink)  
Antiguo 22/09/2013, 11:07
 
Fecha de Ingreso: julio-2013
Mensajes: 309
Antigüedad: 10 años, 9 meses
Puntos: 2
como insertar una imagen en mysql

la verdad he tratado y no me funciona y me sale un error

este es el codigo:

Código PHP:
<td height="47" valign="bottom"> <p>Foto Alumno
                <
input type="file" name="foto"></p></TD>


$foto $_FILES["foto"];

$dbhost="localhost";
$dbname="prueba";
$dbuser="root";
$dbpass="12345";
    
$con mysql_connect($dbhost,$dbuser,$dbpass);
if (!
$con){die('ERROR DE CONEXION CON MYSQL: ' mysql_error());}

$database mysql_select_db("$dbname",$con);
if (!
$database){die('ERROR CONEXION CON BD: '.mysql_error());}
 
 
$sql_i="insert into alumno(foto)

values('"
.$foto."')";
              

    
$result mysql_query($sql_i);
if (! 
$result){
echo 
"La consulta SQL contiene errores.".mysql_error();
exit();
}
else
{
    echo 
"<center><font color='RED'>DATOS INSERTADOS CORRECTAMENTE</font><aref='#'>Volver</a>";
}
}
?> 
es asi o le falta algo mas?





saludos
  #2 (permalink)  
Antiguo 22/09/2013, 12:31
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: como insertar una imagen en mysql

Te da error, pero no dices cual.... aunque viendo el código es mas o menos fácil de adivinarlo, pero para la próxima pon el error que te da.
Para empezar, tal y como lo haces estás intentando insertar un array en la base de datos, y eso no puedes.
Por otro lado debes especificar que intentas hacer, si meter en la base de datos la imagen como tal, o la ruta hacia esa imagen ya que el proceso cambia un poco.
Aclara eso y seguimos.
  #3 (permalink)  
Antiguo 22/09/2013, 13:54
 
Fecha de Ingreso: julio-2013
Mensajes: 309
Antigüedad: 10 años, 9 meses
Puntos: 2
Respuesta: como insertar una imagen en mysql

Cita:
Iniciado por DooBie Ver Mensaje
Te da error, pero no dices cual.... aunque viendo el código es mas o menos fácil de adivinarlo, pero para la próxima pon el error que te da.
Para empezar, tal y como lo haces estás intentando insertar un array en la base de datos, y eso no puedes.
Por otro lado debes especificar que intentas hacer, si meter en la base de datos la imagen como tal, o la ruta hacia esa imagen ya que el proceso cambia un poco.
Aclara eso y seguimos.
Hola , el error me sale en el $foto = $_FILES["foto"];


lo que quiero es cualquiera de las 2 cosas que me guarde en la base de datos o que me guarde la ubicacion


saludos
  #4 (permalink)  
Antiguo 23/09/2013, 03:10
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: como insertar una imagen en mysql

Sigues sin decir que error te da.....

Te explico un poco como hacerlo de una de las formas.
Para subir el fichero y guardar SOLO el nombre del fichero en la base de datos.
- Usas un formulario con un campo file (en teoría ya lo tienes)
- Con la función move_uploaded_file mueves el fichero del directorio temporal a donde tú quieras
- Insertas en la base de datos el nombre del fichero

Básicamente son esos los pasos, prueba y si tienes mas dudas, pregunta o busca mas información por google, hay ejemplos a patadas.
  #5 (permalink)  
Antiguo 23/09/2013, 10:46
Avatar de Filgood  
Fecha de Ingreso: octubre-2008
Mensajes: 87
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: como insertar una imagen en mysql

Claro, yo por ejemplo guardo , como bien te dice el compañero , la imagen en una carpeta de mi servidor y en la bd solo guardo la ruta donde está alojada dicha imagen.

luego si quieres mostrala haces una consulta a la db y cojes el directorio de dicha imagen.


yo cojo el nombre de la imagen asi:


$nombre_foto= $_FILES['foto2']['name'];

luego concateno con el directorio que yo quiera:


$directoriomasnombrefoto="imagenes/albunesfotos/$nombre_foto"; ( esta es la que guardo en la db )


Igual te he liado mas . Si es asi lo siento y si necesitas ya te explicaré lo mejor posible la próxima vez .

Última edición por Filgood; 23/09/2013 a las 10:57
  #6 (permalink)  
Antiguo 23/09/2013, 11:08
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: como insertar una imagen en mysql

Cita:
Iniciado por Filgood Ver Mensaje
Claro, yo por ejemplo guardo , como bien te dice el compañero , la imagen en una carpeta de mi servidor y en la bd solo guardo la ruta donde está alojada dicha imagen.

luego si quieres mostrala haces una consulta a la db y cojes el directorio de dicha imagen.


yo cojo el nombre de la imagen asi:


$nombre_foto= $_FILES['foto2']['name'];

luego concateno con el directorio que yo quiera:


$directoriomasnombrefoto="imagenes/albunesfotos/$nombre_foto"; ( esta es la que guardo en la db )


Igual te he liado mas . Si es asi lo siento y si necesitas ya te explicaré lo mejor posible la próxima vez .
Sin ánimo de crear polémica en plan "mi código es mejor" tal y cual
Pero creo que el guardar información repetida en la base de datos es una tontería, tal y como lo haces, repites mucha información, con lo que se relantiza el proceso y se aumenta el espacio.
Lo ideal es solo guardar el nombre de la imagen, el directorio donde tengas las imagenes sería una variable del script, con lo que te ahorras esa informacion en la base de datos, las busquedas serian mas efectivas, ahorro en espacio, etc...

Saludos
  #7 (permalink)  
Antiguo 23/09/2013, 11:40
Avatar de Filgood  
Fecha de Ingreso: octubre-2008
Mensajes: 87
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: como insertar una imagen en mysql

Efectivamente tienes toda la razón. Pero era para que lo tuviera un poco más claro. ya que si le decimos lo que tiene que hacer pero no el como, aveces cuesta un poco más.

Lo que dices además de ser verdad tiene mucho sentido y una lógica aplastante. Saludos y gracias.

Etiquetas: mysql, select, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:18.