2010-12-09 36 views
2

Je gère une application web écrite en PHP qui se connecte à une base de données MSSQL.
Le développeur d'origine a utilisé http://adodb.sourceforge.net/ comme bibliothèque de base de données.Comment lire une chaîne> 255 caractères dans php/adodb?

Le problème est, lors de la lecture de données en utilisant la méthode GetAll, toutes les chaînes sont tronquées à 255 caractères.

Quelqu'un at-il une solution à mon problème?

edit: La colonne que je suis un problème avec est un varchar(800)

Répondre

0

Pouvez-vous obtenir la dernière colonne à l'aide séparement:

SELECT SUBSTRING (longfield,1,200) as Part1, SUBSTRING (longfield,201,200) as Part2, SUBSTRING (longfield,401,200) as Part3, SUBSTRING (longfield,601,200) as Part4 

?

Vous pouvez ensuite coller les colonnes ensemble. Vous pourriez avoir besoin de cas spéciaux pour quand la chaîne n'est pas vraiment longue.

-1

Je n'ai pas de problème avec ADODB en PHP pour interroger MSSQL. J'écris des requêtes de la façon suivante:

<?php 
// assuming $db is properly configured and connected ADODB database object 
$rs = $db->Execute("SELECT ..."); 
while (!$rs->EOF) { 
    print $rs->fields['fieldname']; 
    // further processing of row 
    $rs->MoveNext(); // move to the next row 
} 
2

Que pouvez-vous changer exactement?

je suis tombé sur cet article, ce qui peut aider: ADODB Varchar Limit Problem

Ce qu'il semble vous suggérer d'essayer est:

  1. Changer votre type de colonne varchar-text
  2. Dans l'instruction select, stipuler un CAST pour la colonne:

soit:

select CAST(MyColumn as text) as MyColumn 

Le poste cite les deux articles suivants, qui de retour le plus haut

http://php.oregonstate.edu/manual/en/ref.mssql.php#47527

http://php.oregonstate.edu/manual/en/ref.mssql.php#71602

Hope this helps

-1

Vérifiez votre si vous utilisez DISTINCT et GROUP BY instructions, apparemment "troncature se produit sur les champs de texte lors de l'utilisation des instructions DISTINCT et GROUP BY en raison de la surcharge de comparer des chaînes de longueur variable par opposition à des chaînes de longueur fixe ".

Link

+0

que vous citez évidemment quelque chose. Souciez-vous d'inclure le lien? –

+0

Je suis et j'ai fourni le lien sur "Lien" mais ici vous allez [http://bytes.com/topic/php/answers/717087-text-truncated-255-chars-odbc](http://bytes. com/topic/php/answers/717087-text-tronqué-255-chars-odbc) – madkris24

0

Essayez de remplacer dans \ drivers adodb-mssql.inc de tous les "255" à "800" ou "MAX".

Ou tout simplement le jeter, pas changement text type de données, text est deprecated