Schrift
[thread]3565[/thread]

Finde Fehler in SQl nicht: Sieht ihn wer?



<< >> 5 Einträge, 1 Seite
pktm
 2005-05-04 21:11
#33214 #33214
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Hallo!

Ich habe folgendes Statement:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
            SELECT
             ID,
             AnnounceCaption,
             DATE_FORMAT(AnzeigeZeitraumVon,\'%d%.%m%.%Y\')
                 AS AnzeigeZeitraumVon,
             DATE_FORMAT(AnzeigeZeitraumBis,\'%d%.%m%.%Y\')
                 AS AnzeigeZeitraumBis
           FROM ap
           WHERE
             YEAR(AnzeigeZeitraumBis) IN($jahre)
             AND
             MONTH(AnzeigeZeitraumBis) IN($monate)
             ORDER BY AnzeigeZeitraumVon ASC
             LIMIT $offset, $max


Das bringt mir den Fehler
Quote
ERROR: Nicht geschlossene Anführungszeichen @ 88
STR: '

alias
Quote
#1064 - You have an error in your SQL syntax near '\'%d%.%m%.%Y\') AS AnzeigeZeitraumVon,
             DATE_FORMAT(AnzeigeZeitraum' at line 3


Bei dem vorherigen Statement
Code: (dl )
1
2
3
4
5
6
7
8
            SELECT
           ID, AnnounceCaption,
           DATE_FORMAT(AnzeigeZeitraumVon,\'%d%.%m%.%Y\') AS AnzeigeZeitraumVon,
           DATE_FORMAT(AnzeigeZeitraumBis,\'%d%.%m%.%Y\') AS AnzeigeZeitraumBis
           FROM ap
           WHERE AnzeigeZeitraumBis > NOW()
           ORDER BY AnzeigeZeitraumVon ASC
           LIMIT $offset, $max


ging das aber...

Die Werte werden übrigens ordnungsgemäß eingesetzte, wie man hier erkennen kann:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
SQL: SELECT
             ID, AnnounceCaption,
             DATE_FORMAT(AnzeigeZeitraumVon,\'%d%.%m%.%Y\') AS AnzeigeZeitraumVon,
             DATE_FORMAT(AnzeigeZeitraumBis,\'%d%.%m%.%Y\') AS AnzeigeZeitraumBis
           FROM ap
           WHERE
             YEAR(AnzeigeZeitraumBis) IN(4,5,6)
             and
             MONTH(AnzeigeZeitraumBis) IN(2005)
             ORDER BY AnzeigeZeitraumVon ASC
             LIMIT 0, 30


Woran liegt das denn?
Kommt MySQL zufällig mit Tabs nicht klar?

Hilfe!
mfg pktm
http://www.intergastro-service.de (mein erstes CMS :) )
pq
 2005-05-05 00:19
#33215 #33215
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
nimm mal die backslashes weg
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
pktm
 2005-05-05 00:28
#33216 #33216
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Das bringt leider keine Änderung.
Habe auch mal die Einrückung weggemacht, aber das brachte auch nix ;(
http://www.intergastro-service.de (mein erstes CMS :) )
pktm
 2005-05-05 00:37
#33217 #33217
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Habe es gefunden. Es lag eiegntlich garnicht am SQL-Statement. Ich habe nur die Jahre und die Monate vertauscht:
MONTH(AnzeigeZeitraumBis) IN(2005) => sollte eigentlich IN(3,4,5) sein...

Was ich aber immer noch nciht verstehe ist, dass phpmyadmin mir einen Fehler anzeigt.
Mit meinem Script funktioniert es, und ich fange alles mögliche an Fehlern ab.

Nungut, also der Fehler bestand in der Verwechslung der Sachen die in die Variablen sollten.
thx & mfg pktm
http://www.intergastro-service.de (mein erstes CMS :) )
pq
 2005-05-05 14:25
#33218 #33218
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=pktm,04.05.2005, 22:37]Was ich aber immer noch nciht verstehe ist, dass phpmyadmin mir einen Fehler anzeigt.
Mit meinem Script funktioniert es, und ich fange alles mögliche an Fehlern ab.[/quote]
bei mir konnte ich den erwähnten fehler nachvollziehen, und er verschwand,
als ich die backslashes wegnahm (ist ja auch klar)..
dass es im skript klappt, hast du gar nicht erwähnt, aber es ist logisch.
vermutlich machst du eine zuweisung des strings an eine variable, und
so verschwinden die backslashes. was sollen die denn auch da, wenn du
das ganze direkt als sql eingibst?
du machst ja auch nicht select from tab where col=\'blubb\', sondern
select from tab where col='blubb'.

Quote
Nungut, also der Fehler bestand in der Verwechslung der Sachen die in die Variablen sollten.

der fehler bestand darin, dass du einen sql-syntaxfehler bekamst.
lies dir bitte dein erstes posting nochmal durch\n\n

<!--EDIT|pq|1115288821-->
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
<< >> 5 Einträge, 1 Seite



View all threads created 2005-05-04 21:11.