Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Gibt es eine Stringlänge Beschränkung?

Hi Leute!

Ich bin dabei eine Homepage umzuschreiben von ASP nach PHP.
Nun musste ich jedoch feststellen dass ich probleme kriege.

Das Problem ist follgendes:

- Text kann auf die DB geschrieben werden. (funktioniert)
- Text sollte von der DB wieder ausgelesen werde.

Dass der Text wieder ausgelesen werden kann funktioniert, dass er dargestellt wird funktioniert solange der Text nicht länger ist als 4096 Zeichen! kann mir bitte jemand sagen wie ich dieses Problem umgehen kann??

z.B. will ich einen sehr langen Text auf meine DB schreiben und dort abspeichern (was ja auch funktioniert und der text ist auf der DB vorhanden) wenn ich den aber wieder darstellen will ( in einem textarea oder auch nur auf dem bildschrim mit echo oder print ) dann werden nur 4096 Zeichen abgebildet!

Hoffentlich kann mir jemand helfen!

cheers

Hier gehts zum Orginal Eintrag "Gibt es eine Stringlänge Beschränkung?" im Forum

Antworten

Irgendwo steckt ein Fehler. So viel kann man sagen. Aber zu sagen wo genau, dazu benötigt es entweder hellseherische Fähigkeiten oder konkretere Informationen von Deiner Seite.

Aber so viel vorweg: Es gibt in PHP keine Beschränkung irgendeiner Art auf 4096 Zeichen.


2.

hallo oimel!

also das einzige was ich dir noch zeigen kann ist ein bischen code wobei ich keinen Fehler festellen kann:

Code:                   In Zwischenablage kopieren (nur IE)
1">

in dem Feld SeniorsText befindet sich momentan nichts anderes als nur blablablablablabla (ca 20'000 Zeichen)
aber wenn ich mein script aufrufe kommt:

länge des Strings = 4096

blablablablabla usw...

ahhhhhhhhhhhhhh
ich seh glaubs wo das problem liegt!!!
es liegt auf meiner DB!!!

Column Name Data Type Length Allows Null
SeniorsText text 16 1

und 16 * 256 = 4096!!!!!!!!!!!!!!!!!
das komische ist nur, dass weil eben vorher ASP hat er trotzdem den ganzen text genommen! und er speichert auch den ganzen text! aber php hat wahrscheinlich das gefühl dass weill die länge nur 16 Bytes ist dass er nur diesen teil wieder nehmen muss....

OK dann bin ich schon mal einen schritt weiter obwohl ich immernoch nicht weiss wie ich das problem beheben kann, da ich die länge des Text (DataType) nicht ändern kann!


3.

Wie du auf 16 * 256 kommst weißt nur du, oder ;)
Also text bzw. ntext können 1.073.741.823 Zeichen speichern. Daran liegt es schonmal nicht.. Irgendwelche HTML-Tags sind da ja nicht drin, die es so erscheinen lassen, als würde nicht der komplette Text ausgegeben? Aber "blablabla" spricht da dagegen ;)

Wird der restliche HTML-Quelltext noch angezeigt? Vielleicht schmiert ja php ab, dann hätte man einen Ausgangspunkt.

[color="red"]Edit:
Hast du zugriff auf die php.ini?[/color]
Zitat:
; Valid range 0 - 2147483647. Default = 4096.
;mssql.textlimit = 4096

; Valid range 0 - 2147483647. Default = 4096.
;mssql.textsize = 4096

Beides mal hochdrehen.. Ansonsten über
ini_set('mssql.textsize',40000);
ini_set('mssql.textlimit',40000);
mal versuchen.


4.

Ahhh jetzt funktioniert es!

hab jetzt einmal mit 40 000 versucht im phpini und es funktioniert!

ich danke vielmals für eure hilfe!


Hier gehts zum Orginal Eintrag "Gibt es eine Stringlänge Beschränkung?" im Forum
 
phpforum.de | Impressum