VipeR: SQL: Maximale grösse für Tabellenzelle ?

Moin moin

Ich habe per PHP einen ziemlich langen Text in eine Tabellenzelle meiner SQL-Datenbank geschrieben und wurde nun von einem Benutzer darauf hingewiesen dass das Ende des Textes einfach abgeschnitten ist.

Erst dachte ich es sei nur ein einmaliger Fehler gewesen, hab den Text nochmal neu in die Datenbank geschrieben, aber wieder war er an der gleichen Stelle abgeschnitten.

Dann hab ich versucht den Text direkt per PHPmyAdmin reinzuschreiben, wieder hats nicht geklappt, wieder an der gleichen Stelle abgeschnitten.

Daher meine Frage: Gibt es sowas wie ne maximale Grösse für die Tabellenzellen ?

Die betreffende Zelle ist vom type 'text' ohne (für mich erkennbare) Längenbeschränkung.

Hoffe mir kann jemand helfen. Auf jeden Fall schonmal danke vorab. :-)

  1. Moin moin

    Ich habe per PHP einen ziemlich langen Text in eine Tabellenzelle meiner SQL-Datenbank geschrieben und wurde nun von einem Benutzer darauf hingewiesen dass das Ende des Textes einfach abgeschnitten ist.

    Das kann verschiedene Gründe haben:

    Bei MySQL ist die maximale Länge eines Feldes vom Typ Text etwa 65.000 Zeichen. Das sollte wohl für die meisten langen Texte ausreichen.
    Falls dieser wert überschritten wird kannst Du Dir mit mit dem Feldtyp "longtext" weiterhelfen.

    Beim Eintrag via PHP-Admin kann es aber sein, daß bestimmte Zeichen, z.B. Hochkomma, Quotas, Backslashes (',",) nicht maskiert wurden.
    Hier hilft die PHP-Funktion addslashes($string) beim Maskieren vor dem Eintragen der Texte sowie stripslashes($string) nach dem Auslesen aus der Datenbank.

    fastix®

    1. Moin!

      Beim Eintrag via PHP-Admin kann es aber sein, daß bestimmte Zeichen, z.B. Hochkomma, Quotas, Backslashes (',",) nicht maskiert wurden.

      Das würde ich aber nun mal ganz gewaltig bezweifeln. PHPMyAdmin dürfte solch einen groben Anfängerfehler wohl eher nicht mehr machen.

      Hier hilft die PHP-Funktion addslashes($string) beim Maskieren vor dem Eintragen der Texte sowie stripslashes($string) nach dem Auslesen aus der Datenbank.

      Und nochmal daneben: Man sollte zwar die einzutragenden Strings mit mysql_escape_string() bearbeiten, um Zeichen mit besonderer Bedeutung zu maskieren (addslashes() macht nur _fast_ dasselbe), aber beim Auslesen ist ein stripslashes _garantiert_ nicht mehr notwendig, weil die Datenbank die Escape-Slashes sozusagen "gefressen" hat.

      - Sven Rautenberg

      --
      ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
      1. Moin!

        ...

        Und nochmal daneben:

        ...

        Ja, klar. Wenn ioch das ganze jetzt etwas munterer lese (heut Nacht um zwei war's wohl schon etwas spät...) fällt mir auch auf, daß da was nicht stimmt.

        a) weil im Ursprungsposting nichts vom PHPAdmin steht und b) weil das stripshlashes eigentlich nicht notwendig sein sollte :)

        fastix®