String wird beim Einfügen abgeschnitten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • String wird beim Einfügen abgeschnitten

    Ich habe ein Problem mit einem String. Es handelt sich dabei um einen sehr langen String welcher in eine MySQL Tabelle vom Typ "text" eingefügt werden soll. Die PHP String Variable stellt den Inhalt einer Textarea Form dar. Leider wird nur eine gewisse Länge in die MySQL Tabelle eingefügt.

    Das heißt alle Zeichen im Textfeld die darüber hinaus gehen, werden einfach abgeschnitten. Nun weiß ich das die max_allowed_packet Größe eine maximale Grenze für die Paketgöße darstellt. Eine Error Message dafür habe ich allerdings nicht erhalten.

    Deshalb vermute ich liegt der Urspung des Problems woanders. Kennt jemand das Problem oder weiß weshalb der String nur bis zu einer gewissen Größe in die MySQL Tabelle eingefügt wird?

    Danke!

  • #2
    da meine glaskugel im wochenende ist, kann ich nur raten: du übergibst die daten per GET ... ansonsten poste den relevanten code.
    Kissolino.com

    Kommentar


    • #3
      vielleicht ist auch der Spaltentyp TEXT zu klein *zuck, probier's mit LONGTEXT (auch wenn Wurzel's Einfall wahrscheinlicher ist XD~)

      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
      Wie man Fragen richtig stellt

      Kommentar


      • #4
        Original geschrieben von Wurzel
        da meine glaskugel im wochenende ist, kann ich nur raten: du übergibst die daten per GET ... ansonsten poste den relevanten code.
        Es handelt sich um einen ziemlich verschachtelten Code der sich über mehrere Seiten erstreckt. Der Text wird über einige Funktionen geparst usw. bevor er in die Datenbank eigefügt wird.

        Der Text selbst wird über die form mittels der superglobalen $_POST["text"] Methode als Array übergeben.

        PHP-Code:
        $content $myts->makeTareaData4Save($_POST["text"],...); 
        Wieso spielst du auf GET an? Kann es ein, das diese Array's nur eine gewisse Anzahl an Zeichen speichern?

        @ghostgambler: Am Spaltentyp dürfte es vorerst nicht liegen. Zumindest denke ich das der Typ text noch ausreichen dürfte. Schließlich ist dieser nur ca. 70kb groß. Trotzdem werde ich den Spaltentyp auf LONGTEXT oder LongBLOB erweitern. Danke!

        cu

        Kommentar


        • #5
          Text richtig escaped? Testausgabe der Query?

          Kommentar


          • #6
            Manchmal ist die einfachste Lösung auch die Richtige

            Nachdem ich mich durch den Source gewühlt habe, hab ich probehalber den Spaltentyp auf LONGBLOB geändert. Nun funktioniert die QUERY problemlos. Ich hätte nicht gedacht das der Typ text nicht in der Lage ist mit Textqueries von 60kb umzugehen...

            EDIT: Wer lesen kann ist klar im Vorteil:

            Zitat aus dem MySQL Reference Manual:
            The maximum size of a row in a MyISAM table is 65,534 bytes. Each BLOB and TEXT column accounts for only five to nine bytes toward this size.
            BLOB, TEXT L+2 bytes, where L < 2^16


            Die Größe deckt sich auch exakt mit der von mir angegebenen .

            Vielen Dank an Alle!

            Gruß
            StarShaper
            Zuletzt geändert von StarShaper; 13.08.2005, 01:12.

            Kommentar

            Lädt...
            X