philippo: Problem mit MySQL Daten einfügen

Hallo

ich stehe völlig aufm Schlauch... Mein MySQL Tabelle:

CREATE TABLE dj\_demosounds (
id INT NOT NULL AUTO_INCREMENT ,
desc TEXT NOT NULL ,
sound\_url VARCHAR( 100 ) NOT NULL ,
img\_url VARCHAR( 100 ) NOT NULL ,
PRIMARY KEY ( id )
);

und mein PHP Code um Daten einzugüen:

PHP-Code:
$eintrag = "INSERT INTO dj_demosounds (id,desc,sound_url,img_url) VALUES ('','','','')";

Leider komtm immer folgende Meldung:

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 'desc,sound_url,img_url) VALUES ('','','','')' at line 1

Was ist falsch!?Ich finde den Fehler einfach nicht...

Gruß
Philipp

  1. Hi,

    CREATE TABLE dj\_demosounds (

    ich werde nie verstehen, wie sich diese Backtickomanie so verbreiten konnte.

    Was ist falsch!?Ich finde den Fehler einfach nicht...

    Tatsächlich nicht? Dann möchte ich Deinen Mathematiklehrer kennen lernen. Wie man Leuten beibringen kann, '' sei eine Zahl, ist mir schleierhaft.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi

      Tatsächlich nicht?

      Nein. Leider gehts auch net, wenn ich das '' weglasse, und ne 0 oder 1 daraus mache...

      Gruß
      philippo

      1. Moin,

        Nein. Leider gehts auch net, wenn ich das '' weglasse, und ne 0 oder 1 daraus mache...

        Dein Feld "id" ist auto-increment -> eigentlich solltest Du die überhaupt nicht von Hand einfügen müssen, weil die dank des Auto-Increments über MySQL veraltet wird. Oder täusch ich mich? Was ist, wenn du dieses Feld weglässt, gehts dann?

        Jörg

    2. Hallo Cheatah,

      CREATE TABLE dj\_demosounds (

      ich werde nie verstehen, wie sich diese Backtickomanie so verbreiten konnte.

      Beschwer dich bei MySQL AB.

      Schöne Grüße,

      Johannes

      --
      ie:% fl:( br:< va:) ls:[ fo:) rl:) n4:& ss:| de:] js:| ch:} sh:) mo:} zu:)
      1. Hallo,

        CREATE TABLE dj\_demosounds (
        ich werde nie verstehen, wie sich diese Backtickomanie so verbreiten konnte.
        Beschwer dich bei MySQL AB.

        Wohl eher bei PHPMyAdmin. MySQL erklärt durchaus schlüssig, wann Namen in Backticks stehen müssen http://dev.mysql.com/doc/mysql/en/legal-names.html.

        viele Grüße

        Axel

  2. Hallo philippo,

    $eintrag = "INSERT INTO dj_demosounds (id,desc,sound_url,img_url) VALUES ('','','','')";

    DESC ist in MySQL ein reserviertes Word, deshalb musst du den Spaltennamen quoten (in Backticks setzen):

    INSERT INTO dj_demosounds (id,desc,sound_url,img_url) VALUES ('','','','');

    Siehe auch http://dev.mysql.com/doc/mysql/en/legal-names.html.

    Schöne Grüße,

    Johannes

    --
    ie:% fl:( br:< va:) ls:[ fo:) rl:) n4:& ss:| de:] js:| ch:} sh:) mo:} zu:)
    1. Hallo,

      $eintrag = "INSERT INTO dj_demosounds (id,desc,sound_url,img_url) VALUES ('','','','')";

      DESC ist in MySQL ein reserviertes Word, deshalb musst du den Spaltennamen quoten (in Backticks setzen):

      Ja. Hätte er (oder PHPMyAdmin) die Backticks aber bereits beim CREATE TABLE _nicht_ gesetzt, wäre er bereits dort auf das reservierte Wort DESC(ending) hingewiesen worden und hätte diesen unsinnigen Feldnamen erst gar nicht verwendet.

      Auch wenn es jetzt eventuell viel Arbeit ist, _ich_ würde den Feldname trotdem lieber umbenennen (description oder descr) als weiterverwenden.

      viele Grüße

      Axel