Foros del Web » Programando para Internet » PHP »

Problema al guardar informacion

Estas en el tema de Problema al guardar informacion en el foro de PHP en Foros del Web. El siguiente codigo me da error al tratar de guardar una imagen en mi base de datos. La intencion es tomar una imagen de disco ...
  #1 (permalink)  
Antiguo 28/02/2003, 11:36
Avatar de Chuty  
Fecha de Ingreso: noviembre-2002
Ubicación: el bar de la esquina
Mensajes: 609
Antigüedad: 21 años, 5 meses
Puntos: 2
Problema al guardar informacion

El siguiente codigo me da error al tratar de guardar una imagen en mi base de datos.
La intencion es tomar una imagen de disco y guardarla en la base de datos en formato binario y si no me equivoco el foepn debe de ser ................$fp = fopen($fichero , "rb", 1); .....

<?php
$fichero = "firma-01.png";

if (!isset($fichero))
{
// Mostrar el formulario de petición del fichero
}
else
// Proceso del elemento $fichero
{
// Comprobación de que $fichero existe en el directorio y se trata de un fichero
if (!file_exists($fichero) || !is_file($fichero))
{
// $fichero no es un nombre de un fichero perteneciente al directorio actual
echo "<H1 ALIGN='Center'>ERROR: no existe un fichero ",
"con ese nombre</H1>\n";
}
else
{
// Obtengo las propiedades del fichero cuyo nombre es $fichero
$tamanio = filesize($fichero);
}
}

$fp = fopen($fichero , "rb", 1); // o "rb" si usas Windows
$contenido= fread($fp, filesize($fichero));

fclose($fp);

$DATA_UNA = '000';
$DATA_DOS = '21234567890123';
$DATA_TRES = ' 15';
$DATA_TAM = $tamanio;
$DAT_REC = $contenido;

// Se establece la conexión con la fuente de datos
$conex = odbc_connect("MISERVER", "sa", "sa");
$consulta = "INSERT mibase.tmp_clientes(DATA_UNA, DATA_DOS, DATA_TRES, DATA_TAM, DAT_REC)
values ('$DATA_UNA' ,'$DATA_DOS', '$DATA_TRES', '$DATA_TAM', '$DAT_REC')";

$resultado = odbc_exec($conex, $consulta);
$Num_Campos = odbc_num_fields($resultado);
$Num_Filas = odbc_num_rows($resultado);
$Num_Filas = 0;

//Se liberan recursos y se cierra la conexión
odbc_free_result($resultado);
odbc_close($conex);
?>

el mensaje de error es el siguiente


Warning: SQL error: [Microsoft][ODBC SQL Server Driver]Syntax error or access violation, SQL state 37000 in SQLExecDirect in c:\inetpub\wwwroot\phptest\funcionarios_02\data.ph p on line 65

Warning: odbc_num_fields(): supplied argument is not a valid ODBC result resource in c:\inetpub\wwwroot\phptest\funcionarios_02\data.ph p on line 66

Warning: odbc_num_rows(): supplied argument is not a valid ODBC result resource in c:\inetpub\wwwroot\phptest\funcionarios_02\data.ph p on line 67

Warning: odbc_free_result(): supplied argument is not a valid ODBC result resource in c:\inetpub\wwwroot\phptest\funcionarios_02\data.ph p on line 71

si uitilizo el fopen ................$fp = fopen($fichero , "r", 1); .....
el codigo se ejecuta bien pero no me guarda toda la informacion de la imagen en mi base de datos.
Saludos y gracias a todos
  #2 (permalink)  
Antiguo 28/02/2003, 14:26
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

No tengo ni idea de como M$SQLServer, pero ¿sabes si el tipo del campo DAT_REC soporta datos binarios?

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 28/02/2003, 14:40
Avatar de Chuty  
Fecha de Ingreso: noviembre-2002
Ubicación: el bar de la esquina
Mensajes: 609
Antigüedad: 21 años, 5 meses
Puntos: 2
Hola y Gracias
Si josemi, el campo DAT_REC soporta datos binarios ya que dentro de la base tengo imagenes guardadas en formato binario.
salu2
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 18:40.