Foros del Web » Programando para Internet » PHP »

variable no me llega completa

Estas en el tema de variable no me llega completa en el foro de PHP en Foros del Web. Hola amigos resulta que tengo una base en mysql y tengo una tabla que tiene un campo llamado sql en el cual guardo sentencias sql, ...
  #1 (permalink)  
Antiguo 22/02/2006, 10:44
 
Fecha de Ingreso: marzo-2004
Ubicación: Bucaramanga
Mensajes: 71
Antigüedad: 13 años, 9 meses
Puntos: 0
variable no me llega completa

Hola amigos resulta que tengo una base en mysql y tengo una tabla que tiene un campo llamado sql en el cual guardo sentencias sql, resulta que tengo una consulta bastante extensa y cuando la consulto y la extraigo de la base no me llega entera sino cortada hasta cierta limite, ya he traido consultas menos extensas y me las trae bien, nose que podra ser.

uso mysql 5 (conexion por odbc)
php 5
apache 2
bajo windows 2003

De ante mano gracias por sus ayudas y aportes
  #2 (permalink)  
Antiguo 22/02/2006, 10:47
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 12 años, 9 meses
Puntos: 33
De acuerdo

pues seria bueno que pusieras la consulta para ver en que esta fallando y se te pueda ayudar mejor.
  #3 (permalink)  
Antiguo 22/02/2006, 10:50
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.547
Antigüedad: 15 años, 8 meses
Puntos: 1262
Hola:

Aunque supongo que te parecerá una tontería... ¿El tamaño del campo en la tabla es suficientemente largo?

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 22/02/2006, 10:51
Avatar de axy108  
Fecha de Ingreso: diciembre-2003
Ubicación: En frente de mi Computadora
Mensajes: 415
Antigüedad: 14 años
Puntos: 0
probablemente el campo donde guardas la sentencia sql tenga una capacidad menor a el tamaño de la sentencia:

ejemplo si tu sentencia tiene 60 caracteres y tu campo esta declarado como varchar(50), entonces MySQL corta automaticamente el contenido para que se adecue al tamaño del campo.

SALUDOS



edito:
ups me gano caricatos
__________________
Todos somos muy ignorantes :pensando: . Lo que ocurre es que no todos ignoramos las mismas cosas ;-) .... Albert Einstein :cool:
  #5 (permalink)  
Antiguo 22/02/2006, 10:54
 
Fecha de Ingreso: marzo-2004
Ubicación: Bucaramanga
Mensajes: 71
Antigüedad: 13 años, 9 meses
Puntos: 0
Amigos el campo es de tipo longtext
  #6 (permalink)  
Antiguo 22/02/2006, 10:55
 
Fecha de Ingreso: marzo-2004
Ubicación: Bucaramanga
Mensajes: 71
Antigüedad: 13 años, 9 meses
Puntos: 0
cuando ejecuto desde el mysql me trae toda la consulta perfecta no se que podra ser
  #7 (permalink)  
Antiguo 22/02/2006, 10:57
Avatar de axy108  
Fecha de Ingreso: diciembre-2003
Ubicación: En frente de mi Computadora
Mensajes: 415
Antigüedad: 14 años
Puntos: 0
mmm porque no pones tu codigo ????
__________________
Todos somos muy ignorantes :pensando: . Lo que ocurre es que no todos ignoramos las mismas cosas ;-) .... Albert Einstein :cool:
  #8 (permalink)  
Antiguo 22/02/2006, 11:05
 
Fecha de Ingreso: marzo-2004
Ubicación: Bucaramanga
Mensajes: 71
Antigüedad: 13 años, 9 meses
Puntos: 0
Código PHP:

//tengo una funcion: esto esta 
en otra pagina conexion.php
function unregistro($sql)
{
 global 
$conex;
 if(
$reg=odbc_exec($conex,$sql))
  {
   if(
$row=odbc_fetch_array($reg))
     {
      
$salida='';
      foreach(
$row as $campo)
        
$salida.=",$campo";
      return 
substr($salida,1);
     }
   else return 
false;
  }
 else
   
errores($sql,mysql_error());
}

//y la ejecuto asi:
//ejecutar.php
require_once('conexion.php');
$codelis="dia_001";
    
$sql="select sql_lis from code_lis where code_lis='".$codelis."'";
    
$data=unregistro($sql);
    echo 
$data
la conexion y la consulta esta correcta porque ya he hecho consultas y me funciona bien el problemas es cuando la consulta del campo es muy extensa
  #9 (permalink)  
Antiguo 22/02/2006, 16:31
 
Fecha de Ingreso: marzo-2004
Ubicación: Bucaramanga
Mensajes: 71
Antigüedad: 13 años, 9 meses
Puntos: 0
Amigos el problema no podria estar en la configuracion del apache o el php que haya alguna limitante para pasar un extenso campo, no se me ocurre nada para solucionar este inconveniente, gracias de todas formas
  #10 (permalink)  
Antiguo 23/02/2006, 15:08
 
Fecha de Ingreso: marzo-2004
Ubicación: Bucaramanga
Mensajes: 71
Antigüedad: 13 años, 9 meses
Puntos: 0
Amigos lo probe con las funciones nativas de mysql y el resultado fue que me trajo todo la cadena de consulta perfectamente sin truncarla
Código PHP:


if(!$conex=mysql_connect('servidor','usuario','*****'))
   die(
"No se puede establecer conexion con la base de datos");
 
mysql_select_db("gd");
 
$sql="select sql_lis from code_lis where code_lis='ano_001'";
 

 if(
$reg=mysql_query($sql))
  {
   if(
$row=mysql_fetch_array($reg))
     {      
        echo 
$row['sql_lis'];
     }
   else return 
false;
  } 
\

pero como tambien estoy trabajando con sql server con las funciones odbc tambien me la trae truncado el campo y entonces hice lo siguiente:
Código PHP:
if(!$conex=mssql_connect('servidor','usuario','*****'))
   die(
"No se puede establecer conexion con la base de datos");
 
mssql_select_db("gd");
 
$sql="select sql_lis from code_lis where code_lis='ano_001'";
 

 if(
$reg=mssql_query($sql))
  {
   if(
$row=mssql_fetch_array($reg))
     {      
        echo 
$row['sql_lis'];
     }
   else return 
false;
  } 
Y que creen pense que me iba a traer toda la consulta perfecta pero tambien me la trunca tanto con funciones odbc a sql como con sus funciones nativas para sql.
Amigos no se que pueda ser .
Solo lo trajo perfecto para funciones nativas mysql,pero cuando uso el odbc para sql o para mysql lo trunca, igualmente con las funciones nativas de sql
PD.
el campo tiene 5500 caracteres
Ayudaaaaaa porfavor

Última edición por jeffcar; 23/02/2006 a las 15:16
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 12:21.