Problem mit SEHR langen strings in Datenbanken

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

  • Problem mit SEHR langen strings in Datenbanken

    Hallo zusammen!

    Ich moechte in meinem Projekt sehr umfangreichen Text in einer DB speichern.
    Die Form sieht dann je DB Eintrag etwa so aus:

    TextID TextName Text

    leider kann der Text sehr lange werden, und ich bekomme dann ein Problem mit der Laenge.
    Im Moment arbeiten ich noch mit einer Access DB.
    Hier gibt es den Datentyp Memo, der angeblich bis zu 65000 Zeichen fassen kann.
    Das duerfte auch fuer mich reichen.

    Allerdings scheint es eine Begrenzung zu geben wie viele Zeichen man mit dem SQL uebertragen kann, da ich nicht mehr als etwas ueber 2000 Zeichen in die DB bzw heraus bekomme.


    Hat jemand eine Idee was ich machen koennte?

    Thx & Gruss
    PL

  • #2
    der feldtyp TEXT kann ne ganze menge daten aufnehmen.


    http://dev.mysql.com/doc/refman/4.1/...-overview.html
    TEXT[(M)]

    A TEXT column with a maximum length of 65,535 (216 – 1) characters.

    Beginning with MySQL 4.1, an optional length M can be given. MySQL will create the column as the smallest TEXT type largest enough to hold values M characters long.

    MEDIUMTEXT

    A TEXT column with a maximum length of 16,777,215 (224 – 1) characters.

    LONGTEXT

    A TEXT column with a maximum length of 4,294,967,295 or 4GB (232 – 1) characters. Up to MySQL 3.23, the client/server protocol and MyISAM tables had a limit of 16MB per communication packet or table row. From MySQL 4.0, the maximum allowed length of LONGTEXT columns depends on the configured maximum packet size in the client/server protocol and available memory.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      dann liegt das problem wohl im sql. anscheinend kann man mit dem nur eine bestimmte menge daten uebertragen
      (update talbe xy, set Text = 'Der lange text')

      wie kann ich text der bei mir auf der page liegt denn sonst noch in eine DB schieben?

      Kommentar


      • #4
        wie meinste?

        mitm formular?

        direkte sql befehle?


        Entwickler für theCOLLECTOR_0.3.0-dev gesucht.

        Kommentar


        • #5
          egal

          Kommentar


          • #6
            Die Begrenzung auf ca. 2k Zeichen klingt für mich so, als sollte der Text per HTTP-GET aus einem Formular oder so verschickt werden, ist das so?

            GET hat eine Längenbeschränkung in dieser Größenordnung (vgl. http://www.galileocomputing.de/openb...el_170001.htm:
            "Die so übertragenen Daten können jedoch nicht beliebig lang sein und sind durch das System begrenzt; die Maximalgröße ist unterschiedlich, liegt jedoch in der Regel bei etwa zwei Kilobyte.")

            Alternative: POST

            Cheers
            Björn

            Kommentar


            • #7
              ja, ich weiss.
              deswegen verwende ich form-> post

              <form action="EditArticle.php" method="post">

              Kommentar


              • #8
                Zeig doch mal Dein Script her ....
                h.a.n.d.
                Schmalle

                http://impressed.by
                http://blog.schmalenberger.it



                Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
                ... nur ohne :-)

                Kommentar


                • #9
                  here we go... (kann man code auch irgendwie formatieren hier?)

                  PHP-Code:
                  <?php
                  //connect to database 
                  $connectionstring odbc_connect("mydb""Sa"""); 

                  if (
                  $_POST['Action']=="Submit")
                  {
                  //SQL quyery
                  $Query "update memo set memotext = '".$_POST['MemoText']."', memoname='".$_POST['MemoName']."' where Memoid=".$_POST['MemoID']." and sprache = 'DE' " 
                  //execute query
                  $queryexe odbc_do($connectionstring$Query); 
                  }

                      
                  //SQL quyery
                      
                  $Query "SELECT * FROM memo where Memoid=".$_REQUEST['MemoID']." and sprache = 'DE' order by Memoorder, memoname" 
                      
                  //execute query
                      
                  $queryexe odbc_do($connectionstring$Query); 
                      
                      
                  //output results to standard output 
                      //odbc_result_all($queryexe, "BORDER=1"); 
                      
                      
                  ?>
                  <form action="EditArticle.php" method="post">
                  <table border=1 width=100%>
                  <? 
                  while(odbc_fetch_row($queryexe)){  
                  ?>
                  <input type="hidden" Name='Action' Value='Submit' >
                  <input type="hidden" Name='MemoID' Value='<?print(odbc_result($queryexe, "memoID"))?>' >
                  <tr>
                      <td align=left ><b><input type="text" name='MemoName' size='91' value='<?print(odbc_result($queryexe, "memoname"))?>'></b></td>
                  </tr>
                  <tr>
                      <td ><textarea name='MemoText' cols="90" rows="13" ><? print(odbc_result($queryexe, "memotext"))?></textarea></td>
                  </tr>
                  <tr>
                      <td >&nbsp;<td>
                  </tr>
                  <tr>
                      <td align=center><input type="submit" value=" Absenden "><td>
                  </tr>
                  <?
                  }
                  ?>
                  </table>
                  </form>
                  Zuletzt geändert von Player1005; 04.01.2006, 10:56.

                  Kommentar


                  • #10
                    http://www.php-resource.de/forum/sho...threadid=47906
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar


                    • #11
                      die funktion odbc_longreadlen() erlaubt mir die laenge des strings in der sql abfrage hoch zu setzen.
                      ist von haus aus in der php.ini auf 4096 gestellt!

                      dann klappts auch!

                      Kommentar

                      Lädt...
                      X