Michimu: SELECT-Abfrage berint aber einen Fehler... nur warum?

Hallo und schönen guten Morgen!

Habe eine odbc select Abfrage, was mehr oder weniger das gleich wie bei MYSQL ist und in dieser habe ich eine LIMIT Funktion eingebaut...
Nur diese LIMIT-Funktion wird nicht angenommen und es heißt dauernd... fehlender Operator... nur warum???

CODE:
$query = odbc_exec($odbc, "SELECT * FROM $acname22 WHERE " . $spalte31 . " LIKE '" . $A3 . "' LIMIT 0, 3 ;") or die (odbc_errormsg());

FEHLERMELDUNG:
Warning: odbc_exec(): SQL error: [Microsoft][ODBC Microsoft Access Driver] Syntaxfehler (fehlender Operator) in Abfrageausdruck 'Feld4 LIKE 'Heike' LIMIT(0, 3)'., SQL state 37000 in SQLExecDirect in D:\xxx.de\_xxx\xxx_5.php on line 174
[Microsoft][ODBC Microsoft Access Driver] Syntaxfehler (fehlender Operator) in Abfrageausdruck 'Feld4 LIKE 'Heike' LIMIT(0, 3)'.

Habe Ihr ne Idee `???

Gruß
Michimu

  1. Hi!

    Ich weiß nicht, aber probier mal das Semikolon am Ende des SQL-Querys wegzumachen...

    Viel Glück!

    Marc Reichelt || http://www.marcreichelt.de/

    --
    Linux is like a wigwam - no windows, no gates and an Apache inside!!!
    SELFCode: ss:| zu:) ls:[ fo:} de:[ va:} ch:? sh:) n4:° rl:? br:^ js:( ie:% fl:) mo:)
    http://emmanuel.dammerer.at/selfcode.html
    1. Hi!

      Ich weiß nicht, aber probier mal das Semikolon am Ende des SQL-Querys wegzumachen...

      Huch..
      Was soll das brinegne eine parse Error?

      1. Hi,

        also... :-) wenn ich die strings ' verändere funktioniert gar nicht mehr... und lt. dem Buch... MYSQL für Dummis... sollte meine "Abfrage" eigentlich funktionieren...

        In der Fehlermeldung steht ja auch ... es fehlt ein Operator... aber was für einer und wo fehlt er dann ?

        :-) Morgendenksport ...

        Michimu

  2. ageausdruck 'Feld4 LIKE 'Heike' LIMIT(0, 3)'.
    Ja gucke dir Deine Anführungszeichen an..
    Die sind grundsätzlich ein bischen willenlos gesetzt.
    Überlege nochmals was ist ein String, benutze die Korrekte Syntax..
    ` oder ' sind da wirklich willkommen.

    Viele Grüße TomIRL

  3. Nix Denksport der sieht bei mir anders aus..
    Ausserdem morgene?
    Ist doch schon um 8:00 Uhr:

    $query = odbc_exec($odbc, "SELECT * FROM $acname22

    ^^^^^^^^^
    Was ist das für eine Variablentyp?
    Vielleicht ein String?
    Wenn ein String dann use ''

    WHERE " . $spalte31

    ^^ Wenn Du überall Doppelt4e Anführungszeichen nutzt siehst Du irgndwann nicht mehr durch.

    . " LIKE '" . $A3 . "' LIMIT 0, 3 ;") or die odbc_errormsg());
    ^^^^^^^^^^^ u.s.w,
    Anführsstriche sind Dein Problem.
    Probere mal folgendes
    $query = odbc_exec($odbc, "SELECT * FROM '$acname22' WHERE  '$spalte31' LIKE '$A3' LIMIT 0, 3") or die (odbc_errormsg())
    Ungetestet weil kein ODBC Schnittstelle.

    Warum machst Du eigentlich überhaupt so viele Stringoperatoren um eine Variabel in die SQL anweisung einzufügen?

    1. Hallo ... :-)

      . " LIKE '" . $A3 . "' LIMIT 0, 3 ;") or die odbc_errormsg());
      ^^^^^^^^^^^ u.s.w,
      Anführsstriche sind Dein Problem.
      Probere mal folgendes
      $query = odbc_exec($odbc, "SELECT * FROM '$acname22' WHERE  '$spalte31' LIKE '$A3' LIMIT 0, 3") or die (odbc_errormsg())
      Ungetestet weil kein ODBC Schnittstelle.

      Dann kommt diese Fehlermeldung:
      Warning: odbc_exec(): SQL error: [Microsoft][ODBC Microsoft Access Driver] Syntaxfehler (fehlender Operator) in Abfrageausdruck ''Feld4' LIKE 'Spring GMBH' LIMIT 0, 3'., SQL state 37000 in SQLExecDirect in D:\xxx.de\_xxx\xxxx_5.php on line 177
      [Microsoft][ODBC Microsoft Access Driver] Syntaxfehler (fehlender Operator) in Abfrageausdruck ''Feld4' LIKE 'Spring GMBH' LIMIT 0, 3'.

      --> Steige da nicht mehr durch... ;-)

      1. --> Steige da nicht mehr durch... ;-)

        Das semikolon Fehlt...

        1. Wir schaffen das schon noch ... oder mich :-)

          $query = odbc_exec($odbc, "SELECT * FROM '$acname22' WHERE '$spalte31' LIKE '$A3' LIMIT 0, 3 ;") or die (odbc_errormsg());

          DAS IST DAS ERGEBNIS:

          Warning: odbc_exec(): SQL error: [Microsoft][ODBC Microsoft Access Driver] Syntaxfehler in Abfrage. Die Abfrage ist unvollständig., SQL state S1000 in SQLExecDirect in D:\xxx.de\_xxx\xxx_5.php on line 181
          [Microsoft][ODBC Microsoft Access Driver] Syntaxfehler in Abfrage. Die Abfrage ist unvollständig.

          Woran liegt es den jetzt noch .. ?
          Michi

  4. Hi,

    $query = odbc_exec($odbc, "SELECT * FROM $acname22 WHERE " . $spalte31 . " LIKE '" . $A3 . "' LIMIT 0, 3 ;") or die (odbc_errormsg());

    Bau das Select-Statement in einer Variable zusammen und gib dann deren Inhalt aus - damit Du erstmal siehst, was Du tatsächlich (nach Einbau aller Variablen) an die Datenbank schickst.

    Also

    $sql = "SELECT * FROM $acname22 WHERE " . $spalte31 . " LIKE '" . $A3 . "' LIMIT 0, 3 ;";
    echo "<br>$sql<br>";
    $query = odbc_exec($odbc, $sql) or die (odbc_errormsg());

    So solltest Du grundsätzlich vorgehen - wenn dann alles funktioniert, kannst Du das echo-Statement ja auskommentieren.

    cu,
    Andreas

    --
    MudGuard? Siehe http://www.Mud-Guard.de/
  5. yo,

    hast du den schon mal geprüft, ob access überhaupt etwas mit einem LIMIT anfangen kann ?

    Ilja

    1. Hi Ilja,

      hast du den schon mal geprüft, ob access überhaupt etwas mit einem LIMIT anfangen kann ?

      Nein... aber ich denke mal... das das geht oder?... ich meine sowas ist doch eine STD-Abfrage....

      Gruß
      Michimu

      1. yo,

        Nein... aber ich denke mal... das das geht oder?... ich meine sowas ist doch eine STD-Abfrage....

        würde ich nicht sagen. benutze doch einfach mal den befehl ohne und mit LIMIT.

        Ilja

      2. Moin!

        Nein... aber ich denke mal... das das geht oder?... ich meine sowas ist doch eine STD-Abfrage....

        Nein, ist es nicht. Manche Datenbanken kennen kein "LIMIT", sondern was ganz anderes. Beispielsweise "TOP". Und ODBC kann solche Unterschiede nur bedingt kapseln.

        - Sven Rautenberg

        --
        "Habe den Mut, dich deines eigenen Verstandes zu bedienen!" (Immanuel Kant)