Ankündigung

Einklappen
Keine Ankündigung bisher.

INSERT IGNORE INTO... unknown column in field list

Einklappen

Neue Werbung 2019

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

  • INSERT IGNORE INTO... unknown column in field list

    Hallo Community,

    ich bin nicht gerade ein MySQL-Hecht. Aber folgendes wirft einen für mich irgendwie nicht nachvollziehbaren Fehler. Vielleicht kann mir da jemand weiterhelfen. Mein SQL-Statement:

    Code:
    INSERT IGNORE INTO wp_oi_images (`post_id`, `file_name`, `title`, `order`) VALUES (1, '192803162c824bd882d68c502a807d05.JPG', '192803162c824bd882d68c502a807d05.JPG', 1);
    Die Fehlermeldung:
    "Error Code: 1054. Unknown column '1' in 'field list'"

    Meine Tabelle (Beispieleintrag):
    post_id | file_name | title |order
    ----------------------------------
    1 | ...3c.jpg |myTitle| 3

    post_id: bigint(20) unsigned not Nulll primary
    file_name: varchar(255) not Nulll primary
    title: varchar(255)
    order: int(10)

    Der Fehler wird sowohl vom Skript, von phpMyAdmin, als auch von MySQL Workbench hervorgerufen. Ich habe auf meinem Windows 7 (jaja Windows ich weiß) XAMPP installiert. Ich habe die Tabelle mal von latin_swedish zu utf8_generalci konvertiert (ohne genau zu wissen was ich da tue) und es hat nichts gebracht. Kann mir jemand einen Hinweis darauf geben, woran es liegen könnte? Es ist irgendwie schwer reproduzierbar.


  • #2
    Zeige die unveränderte Ausgabe von
    Code:
    SHOW CREATE TABLE wp_oi_images
    damit man nachvollziehen kann die der Aufbau deiner Tabelle ist.

    Kommentar


    • #3
      Danke schon einmal für die schnelle Antwort. Das ist die Ausgabe:

      'wp_oi_images', 'CREATE TABLE `wp_oi_images` (\n `post_id` bigint(20) unsigned NOT NULL,\n `file_name` varchar(255) NOT NULL,\n `title` varchar(255) DEFAULT NULL,\n `order` int(10) unsigned DEFAULT NULL,\n PRIMARY KEY (`post_id`,`file_name`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8'

      Kommentar


      • #4
        Code:
        CREATE TABLE `wp_oi_images` (
            `post_id` bigint(20) unsigned NOT NULL,
            `file_name` varchar(255) NOT NULL,
            `title` varchar(255) DEFAULT NULL,
            `order` int(10) unsigned DEFAULT NULL,
            PRIMARY KEY (`post_id`,`file_name`)
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
        
        INSERT INTO
            wp_oi_images (`post_id`, `file_name`, `title`, `order`)
        VALUES
            (1, '192803162c824bd882d68c502a807d05.JPG', '192803162c824bd882d68c502a807d05.JPG', 1);
        Funktioniert bei mir.

        Kommentar


        • #5
          Okay. Es ist definitiv ein encoding-Problem. Copy&Paste des Befehls aus Firebug in Workbench phpMyAdmin und Notepad++ haben mir den Befehl unverändert angezeigt.

          In sqlFiddle passiert jedoch folgendes:
          Vor dem ersten Value (1) erscheinen kleine rote Kreise (bad interpreted chars?). Diese habe ich dann mal zurückkopiert und siehe da:
          1
          Encoding kann fies sein. Kann mir jemand sagen, wie ich sowas (BOM) aus meinen PHP-Skripten zuverlässig herausarbeiten und deren Auftreten vermeiden kann?

          Danke schonmal.

          Kommentar


          • #6
            Jo, hier mal der Totschläger .. http://php-de.github.io/jumpto/mysql-and-utf8/
            Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
            PHP.de Wissenssammlung | Kein Support per PN

            Kommentar


            • #7
              Zitat von Agent49 Beitrag anzeigen
              Kann mir jemand sagen, wie ich sowas (BOM) aus meinen PHP-Skripten zuverlässig herausarbeiten und deren Auftreten vermeiden kann?
              Wie kommt die bom eigentlich in deine SQL Queries?

              Kommentar

              Lädt...
              X