Jan: Fehlermeldung Syntax bei PHPmyadmin(MySql)

Guten Morgen,

Ich habe angefangen mich mit MySql usw. zu beschäftigen... Nun kommt aber schon beim anlegen einer Tabelle folgende SQL Fehlermeldung:

#1064 - You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near '(1000) NOT NULL, Datum VARCHAR(70) NOT NULL, Datumsort INT(

Was bedeutet das? Und kann mir jemand einen Tip geben wie ich den Fehler beseitigen kann?

Danke Jan

  1. Hai,

    bist ja schon früh aktiv. Was hälst du davon, das Statement mal zu posten?

    Dann könnte Dir evtl. geholfen werden.

    Uhfe

    1. Hier?

      -- Host: localhost
      -- Erstellungszeit: 09. Mai 2005 um 20:33
      -- Server Version: 4.1.10
      -- PHP-Version: 5.0.4

      -- -- Datenbank: guestbook

      -- --------------------------------------------------------

      -- -- Tabellenstruktur für Tabelle eintrag

      CREATE TABLE eintrag (
        ID int(11) NOT NULL auto_increment,
        Name varchar(50) NOT NULL default '',
        Email varchar(100) NOT NULL default '',
        http varchar(100) NOT NULL default '',
        Nachricht text NOT NULL,
        Datum varchar(70) NOT NULL default '',
        Datumsort int(11) NOT NULL default '0',
        PRIMARY KEY  (ID)
      ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=26 ;

      --
      -- Daten für Tabelle eintrag
      Wenns jetzt nicht... dann weiss ich auch nicht...
      Gruss
      Jan
      1. CREATE TABLE eintrag (
          ID int(11) NOT NULL auto_increment,
          Name varchar(50) NOT NULL default '',
          Email varchar(100) NOT NULL default '',
          http varchar(100) NOT NULL default '',
          Nachricht text NOT NULL,
          Datum varchar(70) NOT NULL default '',
          Datumsort int(11) NOT NULL default '0',
          PRIMARY KEY  (ID)
        ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=26 ;

        Also bei mir läuft der Befehl tadelos durch.

        Struppi.

        1. Dann scheine ich zu doof zu sein ;-)

          oder

          mit meinem phpmyadmin stimmt was nicht....

          ich tippe mal auf letzteres!

          Danke schon mal

          Jan

          1. Hai,

            vielleicht solltest du dein Urteil nochmal überdenken. Mudguard hat dir doch schon geschrieben woran es vermutlich liegt.

            Bei Text ist keine Längenbegrenzung möglich. Die Begrenzung besteht in der Maximallänge des jeweiligen Texttyps. Bei Text also 2^16-1 Zeichen.

            Gruß

            Uhfe

            Dann scheine ich zu doof zu sein ;-)

            oder

            mit meinem phpmyadmin stimmt was nicht....

            ich tippe mal auf letzteres!

            Danke schon mal

            Jan

      2. Hi,

        Aus Deinem ersten Post:

        #1064 - You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near '(1000) NOT NULL, Datum VARCHAR(70) NOT NULL, Datumsort INT(

        Aus Deinem letzten Post:

        CREATE TABLE eintrag (
          ID int(11) NOT NULL auto_increment,
          Name varchar(50) NOT NULL default '',
          Email varchar(100) NOT NULL default '',
          http varchar(100) NOT NULL default '',
          Nachricht text NOT NULL,
          Datum varchar(70) NOT NULL default '',
          Datumsort int(11) NOT NULL default '0',
          PRIMARY KEY  (ID)
        ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=26 ;

        Beide Teile passen nicht zusammen, denn laut Fehlermeldung müßte es hier:

        Nachricht text NOT NULL,
          Datum varchar(70) NOT NULL default '',
          Datumsort int(11) NOT NULL default '0',

        anders aussehen - vermutlich

        Nachricht text(1000) NOT NULL,
        Datum varchar(70) NOT NULL default '',
        Datumsort int(11) NOT NULL default '0',

        was natürlich zu einer Fehlermeldung führen muß, da text in MySQL keine Längenangabe haben darf.

        cu,
        Andreas

        --
        Warum nennt sich Andreas hier MudGuard?
        Schreinerei Waechter
        Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
      3. Hi,

        verfügst Du über eine MySQL-Version, in der die ENGINE-Klausel implementiert ist?

        hth Robert

        P.S. 'Name' ist ein MySQL-Schlüsselwort und somit kein empfehlenswerter Spaltenbezeichner - auch wenn es vordergründig problemlos funktioniert. Im Archiv finden sich etliche erhellende Diskussionen zu reservierten Bezeichnern...

  2. Guten Morgen,

    Was soll ich denn noch mehr posten als ich hier schon tue?

    #1064 - You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near '(1000) NOT NULL, Datum VARCHAR(70) NOT NULL, Datumsort INT(

    Gruss

    Jan

    1. Moin,

      na ja, vor '(1000...' kommt ja noch irgendwas, das gesamte Statement halt. Das müsste irgendwas wie CREATE TABLE ... sein.
      Gut, da es sich um PHPMyAdmin handelt müssen wir mal davon ausgehen, dass die Statements eigentlich funktionieren. Entweder hast du jetzt einen zu großen Wert für ein Feld angegegeben (z.B. ein CHAR mit 1000 Zeichen?!), oder die Verbindung zur Datenbank scheitert. Guck mal bitte in der Konfiguration nach, ob die Verbindung richtig eingestelt ist, bzw. funktioniert der Rest von PHPMyAdmin?

      MfG
      Rouven

      --
      -------------------
      ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
      1. Morgen,

        ja soweit geht alles d.H ich habe schon 2 Tabellen erstellt, da ging es ohne Probleme!

        Da mit den Zeichen für den Text war eine aus der Luft gegriffene Zahl... eigentlich kommt in diese Spalte keine Zahl rein allerdings geht es auch so nicht....

        Es muss irgendwo in den Einstellungen ein Fehler vorliegen, nehme ich an denn selbst bei einer funktionierenden sql datei die ich gestern abend noch bei einem Kollegen erstellt habe, Zeigt er den selben Syntaxfehler an!?

        1. Hallo nochmal,

          warum um alles in der Welt postest du nicht mal das Statement?

          Uhfe