¿Existe una alternativa (además de cambiar el tipo de columna a un campo de texto) para SELECCIONAR un campo varchar grande usando PHP y la biblioteca mssql? Por ejemplo, un varchar (500). ¿Realmente PHP restringe la cantidad de caracteres a 255? ¿Hay alguna manera de retroceder más que eso?¿Puede la biblioteca PHP y mssql seleccionar más de 256 caracteres de una columna varchar?
Respuesta
Desde la página de PHP, el problema parece ser el controlador de base de datos subyacente en las plataformas de Windows. Varchar solo puede devolver < 255 caracteres. La solución alternativa es convertir el varchar en texto dentro de la sentencia sql SELECT.
La causa en realidad puede ser MySQL en lugar de PHP ... Antes de MySQL 5.0.3 MySQL solo podía almacenar 255 caracteres en un VARCHAR firmado. Este límite se ha aumentado a 65535 en versiones posteriores.
No MySQL, MS SQL. No soy el que está desarrollando esto, mi compañero de equipo sí. Solo estoy haciendo la pregunta. –
Vaya, lo siento, mi error. –
No estoy seguro sobre el casting, cambiaría los tipos de campo relevantes a Text en lugar de Varchar.
Eso es lo que terminamos haciendo, pero no estábamos seguros de si eso iba a romper la funcionalidad existente. No fue así. Pero ese es el trabajo en caso de que realmente no pueda cambiar el tipo de campo con el que está trabajando. –
lanzar una amplia VARCHAR de texto en MS SQL:
SELECT convert(text,myWideField) FROM myTable
Dónde myWideField es la columna que se está truncado y myTable es así ... mi mesa.
El resultado se convertirá en TEXTO con más de 256 caracteres.
d.
Si desea utilizar el nombre original de columna, deberá agregar 'AS'. Por ejemplo, 'SELECT convert (text, myWideField) AS myWideField FROM myTable'. –
He intentado cambiar los valores de las variables en el php.ini:
mssql.textlimit = 2147483647
mssql.textsize = 2147483647
Pero no funciona ...
he cambiado el tipo de mi columna varchar (2000) a varchar (max) ¡Esto funcionó para mí!
Intente cambiar la configuración de freetds.
En el servidor, editar /etc/freetds.conf
Cambio:
tds version = 4.2
a:
tds version = 8.0
Ver más en Notas de usuarios, Mssql Functions Reference.
- 1. Indexar una columna varchar
- 2. ¿El token de acceso puede tener más de 255 caracteres?
- 3. MSSQL Seleccionar instrucción con columna de número entero incremental ... no de una tabla
- 4. ¿Cambiar la longitud máxima de una columna varchar?
- 5. varchar (20) y varchar (50) son iguales?
- 6. Pregunta simple de Linq: ¿Cómo seleccionar más de una columna?
- 7. Equivalente a MSSQL IDENTITY Columna en MySQL
- 8. Monitores de pantalla con más de 256 tonos de gris
- 9. MySQL UTF8 varchar columna tamaño
- 10. La forma más rápida de eliminar caracteres no numéricos de un VARCHAR en SQL Server
- 11. Comparar Varchar y UniqueIdentifier
- 12. Pregunta lenta "Seleccionar" con varchar (max)
- 13. Mostrar la columna CLOB con más de 4000 caracteres
- 14. ¿La biblioteca de validación de formularios más sencilla para PHP?
- 15. Seleccionar música de la biblioteca de iOS y Enviar/Guardar
- 16. Cualquier trampa oculta que cambie una columna de varchar (8000) a varchar (max)?
- 17. Comportamiento de índice único, columna varchar y espacios (en blanco)
- 18. Crear una columna varchar (50) única
- 19. Combinar columna varchar con int columna
- 20. seleccionar valores únicos de una columna
- 21. una buena biblioteca para calcular sha-256 en C++
- 22. Restringir la columna varchar() a valores específicos?
- 23. Para una columna char/varchar/text, ¿por qué un índice para esa columna agilizará la búsqueda?
- 24. MySQL Determinar la longitud más larga de VarChar
- 25. ¿Cómo puedo determinar si una columna es una columna de identidad en MSSQL 2000?
- 26. ¿Es un varchar 2 más eficiente que un varchar 255?
- 27. No se puede conectar a la base de datos de MSSQL a través de PHP
- 28. Python - Xlwt más de 256 columnas
- 29. Encontrar max en mysql cuando la columna es varchar
- 30. Formato de fecha y hora de PDO para MSSQL/dblib
La conversión a VARCHAR (MAX) también parece funcionar si necesita utilizar la palabra clave DISTINCT en su consulta. –