Mit PHP Insert auf SQL Datenbank

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

  • Mit PHP Insert auf SQL Datenbank

    Hallo @all,

    ich habe folgendes Problem:

    Mittels PHP mache ich einen Insert von zwei Textfeldern in
    eine Tabelle.
    In der SQL Tabelle ist:
    Textfeld a ist mit varchar(4000),
    Textfeld b mit text(16) deklariert.

    Der Text, den ich in den beiden Feldern speichere hat eine länge von
    365 Zeichen.
    Beim Insert läuft alles nach Plan.

    Wenn ich die beiden Texte nun per Select wieder auslese,
    passiert folgendes:

    Der Text von Textfeld b wird komplett ausgelesen,

    Der Text von Textfeld a wird nach 256 Zeichen einfach abgeschnitten.

    Kann mir jemand sagen, warum das so ist?

    mfg
    neo2003i

  • #2
    varchar geht nur bis 255

    gruss
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Danke erstmal für die schnelle Antwort.

      Gibt es da keine andere Möglichkeit, mit varchar längere Texte zu speichern?

      Kommentar


      • #4
        Nö, nimm dann einfach Text!
        it's not a bug,
        it's a feature!

        Kommentar


        • #5
          vielleicht willst du dich hier mal informieren?!
          http://dev.mysql.com/doc/mysql/de/column-types.html
          Kissolino.com

          Kommentar


          • #6
            Original geschrieben von neo2003i
            Gibt es da keine andere Möglichkeit, mit varchar längere Texte zu speichern?
            wenn man dir schon sagt, dass es nicht möglich ist, drei dutzend leute auf ein mal mit einem mini cooper durch die gegend zu fahren - wieso schaust du dich dann nicht nach einem größeren auto um?
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Original geschrieben von wahsaga
              wenn man dir schon sagt, dass es nicht möglich ist, drei dutzend leute auf ein mal mit einem mini cooper durch die gegend zu fahren - wieso schaust du dich dann nicht nach einem größeren auto um?
              Weil ich es nicht verstehe, beim Insert wird ja auch der gesamte Text gespeichert (mehr als 255 Zeichen). Warum schneidet er den Text dann beim Select ab?

              Gruß neo2003i

              Kommentar


              • #8
                Original geschrieben von neo2003i
                Weil ich es nicht verstehe, beim Insert wird ja auch der gesamte Text gespeichert (mehr als 255 Zeichen).
                woraus ziehst du diesen vollkommen unsinnigen schluß?

                du gießt einen liter wasser in ein 0,2 liter glas, und behauptest dann, es sei jetzt alles im glas - selbstverständlich blödsinn.

                Warum schneidet er den Text dann beim Select ab?
                da schneidet er nichts ab, es sind bereits nur noch 225 zeichen vorhanden.



                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Original geschrieben von wahsaga
                  woraus ziehst du diesen vollkommen unsinnigen schluß?

                  du gießt einen liter wasser in ein 0,2 liter glas, und behauptest dann, es sei jetzt alles im glas - selbstverständlich blödsinn.


                  da schneidet er nichts ab, es sind bereits nur noch 225 zeichen vorhanden.
                  Weil dem so ist.

                  Ich habe in meiner MSSQL Datenbank das Feld mit varchar(4000) deklariert.
                  Mit Insert einen text (354 Zeichen) komplett gespeichert. (Hab mir den datenbank eintrag nochmal angesehen - der Text ist komplett gespeichert).
                  Beim Insert liefert er mir dann nur einen Teil des Textes zurück.

                  Es tut mir leid wenn ihr mir nicht glaubt, aber es ist wirklich so.

                  Kommentar


                  • #10
                    MS SQL oder MySQL, wenn MS SQL dann muss ich passen, da ich nicht weiss ob man da mit varchar (4000) arbeiten kann.

                    gruss
                    peter
                    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                    Meine Seite

                    Kommentar


                    • #11
                      MS SQL

                      gruß
                      neo2003i

                      Kommentar


                      • #12
                        Ich kapier immer noch nicht, warum du unbedingt weiterhin VARCHAR benutzen willst, anstatt TEXT.

                        (Wenn du viel zu schreiben hast nimmst du VARCHAR und wenn wenig zu schreiben ist TEXT - ich versteh dich echt nicht! Das ist irgendwie unlogisch!)
                        it's not a bug,
                        it's a feature!

                        Kommentar


                        • #13
                          Wenn du viel zu schreiben hast nimmst du VARCHAR und wenn wenig zu schreiben ist TEXT - ich versteh dich echt nicht! Das ist irgendwie unlogisch!
                          du meinst sicher anders herum.
                          peter
                          Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                          Meine Seite

                          Kommentar


                          • #14
                            Ich hab gesagt, wie er das zur Zeit macht. Das ist unlogisch. Andersrum wäre es ja richtig, aber das macht er ja nicht.
                            it's not a bug,
                            it's a feature!

                            Kommentar


                            • #15
                              lesen bildet:
                              Buried away in the mssql_field_length documentation is an important limitation that it is certainly worth knowing about *BEFORE* you do any database design:

                              Note to Win32 Users: Due to a limitation in the underlying API used by PHP (MS DbLib C API), the length of VARCHAR fields is limited to 255. If you need to store more data, use a TEXT field instead.

                              SQL Server natively supports VARCHAR up to 8000 characters. Note that TEXT fields have substantially poorer performance (and are much more limited) than VARCHAR so you may want to design your databases accordingly...

                              You can also work around this limitation with the following:

                              -- for example, with MyVarCharField VARCHAR(1000)
                              SELECT CAST(MyVarCharField AS TEXT) FROM MyTable
                              QUELLE: http://php3.de/manual/de/ref.mssql.php => UCN
                              Kissolino.com

                              Kommentar

                              Lädt...
                              X