Foros del Web » Programando para Internet » PHP »

Problemas al insertar

Estas en el tema de Problemas al insertar en el foro de PHP en Foros del Web. Hola amigos Tengo un problemilla con un insert. Estoy trabajando con SQL Server 2005 y con ODBC en php. El codigo que inserta es el ...
  #1 (permalink)  
Antiguo 18/06/2008, 09:56
 
Fecha de Ingreso: octubre-2006
Mensajes: 21
Antigüedad: 17 años, 6 meses
Puntos: 1
Pregunta Problemas al insertar

Hola amigos

Tengo un problemilla con un insert. Estoy trabajando con SQL Server 2005 y con ODBC en php.

El codigo que inserta es el siguiente
Código PHP:
$query "INSERT INTO [plcweb].[dbo].[noticiasplc](fechanoti,titnoti,descNoti,titImagen,noticia_binario,noticia_nombre,noticia_tipo,noticia_peso) VALUES('".$fechanoti."','".$titnoticia."','".$descripnoti."','".$titImagen."','".$noticia_binario."','".$noticia_nombre."','".$noticia_peso."','".$noticia_tipo."')";
    
$rs=odbc_exec($conect,$query)or die(exit("Error en odbc_exec")); 
la tabla tiene los mismos campos, solo que el primero no incluyo el noticia_ID que es un IDENTITY y va solo en autoincremento.

El error que me sale es esto:
Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][ODBC SQL Server Driver]Syntax error or access violation, SQL state 37000 in SQLExecDirect in C:\wamp\www\PLC de Venezuela_files\administracion\upNoticia.php on line 32
Error en odbc_exec

Por lo que he visto por ahi creo que es un error en la sintaxis, si alguien me puede echar una manito please!!!.
  #2 (permalink)  
Antiguo 18/06/2008, 10:05
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: Problemas al insertar

no se mucho para el tipo de consulta en esa base de datos, pero si se q es casi lo mismo mira esta q me anda sin errror alguno y cambiala...
Código PHP:
$query="INSERT INTO tabla SET

        activo = '$activo',

        contenido = '$contenido',

        titulo = '$titulo'"
;    

        
mysql_query($query); 
fijate q no tiene mucha vuelta pero funciona al 100%

saludos y espero haber sido util
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #3 (permalink)  
Antiguo 18/06/2008, 10:06
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: Problemas al insertar

otra pregunta
pq trabajas con SQL??? algun requerimiento de lo q haces?
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #4 (permalink)  
Antiguo 18/06/2008, 10:10
 
Fecha de Ingreso: octubre-2006
Mensajes: 21
Antigüedad: 17 años, 6 meses
Puntos: 1
Respuesta: Problemas al insertar

Hola amiyo T4keOveR, por cierto tambien estoy en Caracas, Venezuela.

Si trabajo con SQL porque asi lo decidio mi tutor de pasantias aqui en la empresa y como tienen la licencia de SQL SERVER quieren aprovecharla .

Voy a probar tu codigo a ver si me funciona, cualquier cosa comento dentro de un rato el resultado. Gracias por la rapida respuesta amigo.
  #5 (permalink)  
Antiguo 18/06/2008, 10:13
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: Problemas al insertar

ah ok... me imagino q es algun requerimiento por parte de la empresa debe haber algun sistema con el q trabajen... bueno man prueba y cuentame... ese esta adaptado a mysql.. solo modificalo a SQL
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #6 (permalink)  
Antiguo 18/06/2008, 10:16
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: Problemas al insertar

fijate en este
Código PHP:
<?php
  
foreach($_POST as &$v)
    
$v str_replace("'"''$v);

  
$sql 'INSERT INTO table (' join(',',array_keys($_POST)) . ') VALUES (' join(','array_fill(0count($_POST), '?')) . ')';
  
$query odbc_prepare($conn$sql);
  
$result odbc_execute($query$_POST);
?>
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #7 (permalink)  
Antiguo 18/06/2008, 13:21
 
Fecha de Ingreso: octubre-2006
Mensajes: 21
Antigüedad: 17 años, 6 meses
Puntos: 1
Respuesta: Problemas al insertar

Bueno despues de experimentar un poco, tu solucion si me funciono amigo,tambien note de que tengo es un problema con el tipo de campo de las imagenes en MYSQL lo usaba con MEDIUMBLOB y en SQL SERVER 2005 tenia varbinary(max) lo he cambiado a image pero ahora no salen bien las imagenes, es lo que me tiene extranado.
Gracias por tu colaboracion
  #8 (permalink)  
Antiguo 18/06/2008, 13:31
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: Problemas al insertar

coloca tu codigo completo de la archivo donde imprimes tu imagenes!!!
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #9 (permalink)  
Antiguo 18/06/2008, 14:06
 
Fecha de Ingreso: octubre-2006
Mensajes: 21
Antigüedad: 17 años, 6 meses
Puntos: 1
Respuesta: Problemas al insertar

Okey amigo este es el codigo donde hago el llamado de la imagen

MostrarNoticia.php
Código PHP:
$query = "SELECT * FROM [plcweb].[dbo].[noticiasplc] WHERE noticia_ID=$id";
$rs=odbc_exec($conect,$query)or die(exit("Error en odbc_exec"));
while($resultado=odbc_fetch_array($rs))
          {                
                           
                $idimagen = $resultado['noticia_ID'];
                                   /*
                                       resto de codigo

                                 */

                  }


 <a href="vernoticia.php?id=<?php echo $idimagen;?>" title="<?php $descImagen?>" rel="lightbox">   
                                                        <img src="vernoticia.php?id=<?php echo $idimagen;?>" height="120" width="120" align="middle"/>
                                                  </a>
Archivo ver imagenes
Código PHP:

    $valor
=$_GET['id'];
    
$conectodbc_connect('plcweb','root','');
    
    
$query2 "SELECT * FROM [plcweb].[dbo].[noticiasplc] WHERE noticia_ID = '".$valor."' ";
    
$resp2=odbc_exec($conect,$query2)or die(exit("Error en odbc_exec"));
    
        
$datos odbc_result($resp2,"noticia_binario");
        
$tipo odbc_result($resp2,"noticia_tipo");
        
$nombre odbc_result($resp2,"noticia_nombre");
        
$peso odbc_result($resp2,"noticia_peso");
    
    
header("Content-type:".$tipo);
    
header("Content-length: $peso"); 
    
header("Content-Disposition: inline; filename=$nombre"); 
    echo 
$datos
Gracias por la colaboracion
  #10 (permalink)  
Antiguo 18/06/2008, 14:09
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: Problemas al insertar

y en q linea imprimes tu imagen??? pq no la veo =/
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #11 (permalink)  
Antiguo 18/06/2008, 14:17
 
Fecha de Ingreso: octubre-2006
Mensajes: 21
Antigüedad: 17 años, 6 meses
Puntos: 1
Respuesta: Problemas al insertar

En mostrarnoticia.php tengo

Código PHP:
<img src="vernoticia.php?id=<?php echo $idimagen;?>" height="120" width="120" align="middle"/>
alli llamo al otro archivo que es el que busca en la BD y e imprimo el contenido que binario que para mi caso seria datos, el problema es que no me esta mostrando ninguna imagen.

Código PHP:
$valor=$_GET['id'];
    
$conectodbc_connect('plcweb','root','');
    
    
$query2 "SELECT * FROM [plcweb].[dbo].[noticiasplc] WHERE noticia_ID = '".$valor."' ";
    
$resp2=odbc_exec($conect,$query2)or die(exit("Error en odbc_exec"));
    
        
$datos odbc_result($resp2,"noticia_binario");
        
$tipo odbc_result($resp2,"noticia_tipo");
        
$nombre odbc_result($resp2,"noticia_nombre");
        
$peso odbc_result($resp2,"noticia_peso");
    
    
header("Content-type:".$tipo);
    
header("Content-length: $peso"); 
    
header("Content-Disposition: inline; filename=$nombre"); 
    echo 
$datos
Pero sabes yo tengo dos scripts para insertar en la BD las imagenes una es noticias que ya me esta funcionando, y eso porque cambie el campo en la BD de varbinary(max) a image y otro de productos estoy realizando lo mismo cambiando el campo pero me lanza el error que habia dicho al comienzo de este post

El error que me sale es esto:
Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][ODBC SQL Server Driver]Syntax error or access violation, SQL state 37000 in SQLExecDirect in C:\wamp\www\PLC de Venezuela_files\administracion\upNoticia.php on line 32
Error en odbc_exec


Realmente no entiendo lo que puede estar pasando
  #12 (permalink)  
Antiguo 18/06/2008, 14:59
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: Problemas al insertar

primero lo de la imagen...
cambia esto
Código PHP:
<img src="vernoticia.php?id=<?php echo $idimagen;?>" height="120" width="120" align="middle"/>
a esto
<img src="<php echo $idimagen;?>" height="120" width="120" align="middle"/>
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
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 22:04.