Foros del Web » Programando para Internet » PHP »

Longitud variables

Estas en el tema de Longitud variables en el foro de PHP en Foros del Web. Hola, Espero q el tema no este repetido, aunq lo busque con el buscdor, valga la redundancia... :P Pues bien, mi problema es el siguiente: ...
  #1 (permalink)  
Antiguo 20/06/2012, 09:03
 
Fecha de Ingreso: agosto-2007
Mensajes: 8
Antigüedad: 16 años, 8 meses
Puntos: 0
Longitud variables

Hola,

Espero q el tema no este repetido, aunq lo busque con el buscdor, valga la redundancia... :P

Pues bien, mi problema es el siguiente:

Tengo una consulta a sqlserver q me devuelve un texto de 500 caracteres o mas y las variables q conozco de php solo soportan 255 caracteres... como hago para obtener el texto completo???

Utilizo AppServ2.5 + Sqlserver2005 standar...

El texto devuelto es solo cadena comun y normal sin caracteres especiales...

Si alguien sabe como se lo agradeceré infinitamente...

saludos...
  #2 (permalink)  
Antiguo 20/06/2012, 09:11
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Longitud variables

A ver, a ver... ¿cuales variables que conoces sólo soportan 255 caracteres?

Jamás había escuchado eso y eso que llevo años en el lenguaje, sería bueno que nos muestres un ejemplo de lo que hablas porque yo no te creo nada.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 20/06/2012, 10:19
 
Fecha de Ingreso: agosto-2007
Mensajes: 8
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Longitud variables

pues las q simplemente pongo asi:

$variable = $row['cadena'];

la envio a imprimir y siempre me imprime 255 caracteres y pues tan novel q soy solo se poner así las variables...

lo siento si lo q preguntes tonto, pero prefiero preguntar cosas tontas a quedar tonto por no preguntar... :D

saludos
  #4 (permalink)  
Antiguo 20/06/2012, 10:26
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Longitud variables

¡Ahora entiendo!

No es que las variables en php estén limitadas, sino que seguramente tu columna en la base de datos es VARCHAR y como máximo admite 255 caracteres.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 20/06/2012, 10:33
 
Fecha de Ingreso: agosto-2007
Mensajes: 8
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Longitud variables

ya quisiera, :P , la columna es nvarchar(4000) q es el maximo q me permitió sqlserver, además q ya tengo ingresado texto en dicho campo y con un select directo en el managment si obtengo la cadena completa

alguna otra idea, siguelas lanzando, quiza alguna se me haya pasado (tanto estar en algo como q quita ideas y las cosas obvias se me pasan :D)

saludos y gracias por tu ayuda :)
  #6 (permalink)  
Antiguo 20/06/2012, 10:35
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Longitud variables

Es que una asignación tan sencilla no debería truncar el texto por ningún motivo, intenta esto:
Código PHP:
$variable $row['cadena'];
echo 
'LONGITUD: '.strlen($variable); 
¿Que resulta?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 20/06/2012, 10:48
 
Fecha de Ingreso: agosto-2007
Mensajes: 8
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Longitud variables

me sale longitud: 255 :(

talves existe alguna declaracion en especial ??? no se se me ocurre, aunq en la ayuda de php no encontré nada al respecto :S

una consulta, en q se diferencia poner :

$variable = $row["cadena"];
y
$variable = $row['cadena'];

gracias again...
  #8 (permalink)  
Antiguo 20/06/2012, 10:56
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Longitud variables

Yo creo que tiene más que ver con la forma en que extraes los datos de la base de datos
  #9 (permalink)  
Antiguo 20/06/2012, 11:30
 
Fecha de Ingreso: agosto-2007
Mensajes: 8
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Longitud variables

q raro, no tiene mayor ciencia, te pongo lo q hago...

Código PHP:
Ver original
  1. $qry = 'Select texto from lectura where id = 1';
  2.  
  3. $text = mssql_query($qry);
  4.  
  5. while($row = mssql_fetch_arrays($text))
  6. {
  7. $variable = utf8_encode($row['texto']);
  8. echo $variable;
  9. }

nada más... quiza estoy errado en algo y no se q esta mal...

saludos y gracias...
  #10 (permalink)  
Antiguo 20/06/2012, 11:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Longitud variables

Desafortunadamente es un problema en específico de MSSQL con PHP:
Cita:
Iniciado por http://www.php.net/manual/en/function.mssql-field-length.php
Due to a limitation in the underlying API used by PHP (MS DBLib C API), the length of VARCHAR fields is limited to 255. If you need to store more data, use a TEXT field instead.
Tienes que cambiar el tipo de columna a TEXT, en el caso de que eso no sea posible (y trabajes sobre Windows) PHP te recomienda mejor usar el driver de MS: http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx que tiene mayor soporte y sí soporta extraer todo el texto.

Saludos.
  #11 (permalink)  
Antiguo 20/06/2012, 11:50
 
Fecha de Ingreso: agosto-2007
Mensajes: 8
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Longitud variables

¡¡¡GRACIAS GatorV!!!

Esa fue la solucion ahora si ya funciona muy bien :D

como la base era mia le cambie a text y quedo... aun así investigaré sobre el driver...

gracias again...

saludos...

Etiquetas: php+basedatos, variablesphp
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:19.