Schledo Geschrieben 24. Juli 2002 Geschrieben 24. Juli 2002 Habe ein kleines Problem, wir haben seit lägerem im Intranet u.a. HTML-Formulare mittels PHP erzeugt und die laufen auch ganz gut. Nun ist es aber vorgekommen das in bestimmten Feldern mal mehr als 255 Zeichen eingetragen wurden/werden. Fakt ist es kommen aber nur 255 Zeichen in der DB an, was definitiv nicht an der DB liegt (das Feld hält wesentlich mehr aus). Es scheint also, als ob in die PHP-Variable nur 255$ Zeichen "reinpassen" und dann einfach abgeschnitten wird ? Wie kann ich das umgehen bzw. richtigstellen :confused: Zitieren
Fraggy Geschrieben 24. Juli 2002 Geschrieben 24. Juli 2002 Lo Schledo, Eine normale php Variable verträgt ganz sicher mehr als 255 zeichen. Hast du die Variable vielleicht irgendwie auf 255 beschränkt ? (Falls das in PHP überhaupt geht). Falls es wirklich nicht an der Datenbank liegt (Feld als varchar deffiniert ?) Kann auch sein, daß das Textfeld des HTML Formulares auf 255 Zeichen beschränkt ist. Gruß Fraggy Zitieren
Schledo Geschrieben 24. Juli 2002 Autor Geschrieben 24. Juli 2002 Also so ähnliche Gedanken habe ich mir auch schon gemacht, aber woran liegt das nun ? A.Datenbank. Sicherlich nicht, denn das Feld ist mit nvarchar 1000 deklariert. B. HTML-Textarea. Möglicherweise, hat da jemand ne Ahnung ? C. PHP-Variable. Glaub ich einfach nicht. Das Problem / Phänomen muss doch bekannt sein :confused: Zitieren
Jaraz Geschrieben 24. Juli 2002 Geschrieben 24. Juli 2002 Hallo, nvarchar wird von PHP nicht unterstützt. http://bugs.php.net/bug.php?id=8055 Ob das von der PHP Version abhängt, weiss ich nicht. Musste mal notfalls mit ner neueren Version testen. Gruß Jaraz Zitieren
Fraggy Geschrieben 24. Juli 2002 Geschrieben 24. Juli 2002 Dann ist das ja klar... Liegt dann doch an der Datenbank .. deklarier das Feld halt mal probeweiese als Text ... Zitieren
Schledo Geschrieben 25. Juli 2002 Autor Geschrieben 25. Juli 2002 nvarchar wird von PHP nicht unterstützt. Ähm, nicht unterstüzt kann jawohl auch nicht wirklich sein, denn ich verwende ziemlich viele andere Felder auch mit nvarchar und das problemlos. Ich mache jetzt mal ein paar Test die mir weiterhelfen könnten ... Zitieren
Schledo Geschrieben 25. Juli 2002 Autor Geschrieben 25. Juli 2002 Also ich habe jetzt einige Tests gemacht und festgestellt, das die Texte eigentlich ordentlich in die Datenbank geschrieben werden, der Fehler liegt mehr beim Auslesen/Anzeigen der Daen, da wird nämlich "abgeschnitten" nach dem 255ten Zeichen. Denke das dies wohl an der Inkompatibilität mit nvarchar liegen könnte (die dann nur ab 255 Zeichen vorhanden wäre) daran liegen könnte. Jetzt habe ich allerdings eine Fragebezüglich der Umstellung auf den Feldtyp Text. Ich hatte vorher bzw. habe im Moment den Typ nvarchar 1000, was ausreicht, wenn ich allerdings auf TExt umstelle, so habe ich maximal Text 16 im "Angebot", wieviele Zeichen sind das letztendlich bzw. wie ist diese Größenangabe gemeint ? Nicht das mit das was von den aktuellen Texten abgeschnitten wird, das wäre ziemlich schlimm. Zitieren
Jaraz Geschrieben 25. Juli 2002 Geschrieben 25. Juli 2002 Hallo, wieso nimmst du nicht varchar? Übersicht der einzelnen Datentypen: http://www.berndjungbluth.de/sqlfaq/faqb4.htm Original geschrieben von Schledo Nicht das mit das was von den aktuellen Texten abgeschnitten wird, das wäre ziemlich schlimm. Ich hoffe ja stark du sicherst die Datenbank bevor du was an der Tabellenstruktur änderst. Gruß Jaraz Zitieren
Fraggy Geschrieben 25. Juli 2002 Geschrieben 25. Juli 2002 öööhm -.. Was für eine Datenbank benutzt du da eigentlich ?? Zitieren
Schledo Geschrieben 25. Juli 2002 Autor Geschrieben 25. Juli 2002 Verwenden im Betrieb den SQL-Server 2000, hat schon seine Gründe ... Stimmt eigentlich, das mit varchar wäre ne Möglichkeit Werde ich gleich mal (natürlich erst nach der Mittagspause) versuchen ... Zitieren
Schledo Geschrieben 25. Juli 2002 Autor Geschrieben 25. Juli 2002 Versuch mit varchar fehlgeschlagen, in der DB stehen nach wie vor die Texte mit weit mehr als 255 Zeichen drinne, nur beim Auslesen kommen in den Variablen nur 255 an .... Weitere Ideen :confused: Zitieren
Tachyoon Geschrieben 26. Juli 2002 Geschrieben 26. Juli 2002 Kannst du die Codezeilen zum Auslesen mal posten per copy&paste? Am besten gleich die komplette Datei posten, wenn da nichts Firmeninternes drinsteht. (Ansonsten die Stellen weglassen) Denn vielleicht liegts ja doch ganz woanders. CU Tachyoon Zitieren
Schledo Geschrieben 26. Juli 2002 Autor Geschrieben 26. Juli 2002 Die ganze Ausgabedatei ist denke ich durch viele Sonderoptionen zu groß für hier, aber die wesentlichen Auslesevorgänge aus der DB sind diese (auf wesentliche gekürzt) : $sqlanfrage = "SELECT TOP $limit * FROM $tabelle WHERE $bedingung AND $id NOT IN (SELECT TOP $offset $id FROM $tabelle WHERE $bedingung ORDER BY $sortierung) ORDER BY $sortierung"; $ergebnis = mssql_query($sqlanfrage) $zeile = mssql_fetch_row($ergebnis) ... die entspr. Text werden dann in einer HTML-Tabelle / Zelle ausgegeben ... Grundlegende Fehler ausgeschlossen, denn Skript schon recht lange in ständigem Betrieb. (Und nicht wundern warum ich oben eine Verschachtelung gewählt habe anstatt einfach nur die LIMIT-Klausel, diese gibt es nämlich bei meinem SQL-Server nicht ) Zitieren
Tachyoon Geschrieben 26. Juli 2002 Geschrieben 26. Juli 2002 Hast du auch mal ne Extra-PHP Datei erstellt und dir $ergebnis bzw. $zeile alleine anzeigen lassen (ohne alles andere - Minimaleinstellug halt)? Noch immer dasselbe? Wenn ja, mußt du wohl oder übel mal alle textartigen Variablentypen zum Auslesen (z.B. auch Memo) durchprobieren. Wenn nicht, stellst du vielleicht mit einer der angesprochenen Sonderoptionen die maximal verfügbare (oder auch nur anzeigbare?) Länge auf 255 Zeichen ein. Dann darfst du die große Datei durchsuchen. CU Tachyoon Zitieren
Schledo Geschrieben 26. Juli 2002 Autor Geschrieben 26. Juli 2002 Nein, das hilft mir alles nicht weiter. Einzel ist es genau das selbe Problem. Und die angesprochenen Sonderoptionen wirken sich nur auf den Seitenaufbau anhand der Daten aus und nicht auf die Daten selbst. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.