Query werkt in SQL browser maar niet correct op mijn php site

Status
Niet open voor verdere reacties.

Geoffrey1

Nieuwe gebruiker
Lid geworden
1 mei 2008
Berichten
4
Als ik in de query browser dit uitvoer:
SELECT * FROM `movies` WHERE MONTH(movie_dateadded) = '04' ORDER by movie_dateadded DESC
Dan krijg ik een goede response. met alleen de movies waarbij de maand 04 is .

Voer ik het uit vanuit een php website dan krijg ik ook de movies waarbij de maand 05 is.
Hoe komt dit??
 
Een paar punten:

- Haal die backticks uit je query.
- Selecteer specifieke kolommen, niet *.


Verder is het wellicht zo dat je zonder single quotes om de '04' een beter resultaat krijgt. Daarnaast zou je moeten controleren of MySQL '4' of '04' retourneert met de MONTH-functie, dat zou ik zo gauw niet weten.
 
Reserved words zijn niet voor niets reserved.

http://wiki.phpfreakz.nl/backticks

En daarom juist backticks, om tóch die woorden (die vaak erg logisch gekozen zijn) te kunnen gebruiken. Ik heb je document doorgelezen en kom dan tot de conclusie om eerder de kolomnamen anders te kiezen, dan de backticks te vermijden.

Zonder backticks levert meer problemen op.
 
Zonder backticks levert meer problemen op? Huh?

Bij de meeste databases zijn ze zelfs verboden...
 
Zonder backticks levert meer problemen op? Huh?

Bij de meeste databases zijn ze zelfs verboden...

We drammen wel erg door offtopic :p

Als je een kolomnaam "group" hebt in een tabel en je vergeet de backticks levert dat dus (meer) problemen op. Ditzelfde geldt voor een kolomnaam "delete" (zoals in jouw voorbeeld staat).

Daarnaast heb ik bij geen enkele database (tot nu toe) een foutmelding gehad omdat ik backticks gebruikte, dus "meeste" gaat niet echt helemaal op voor mij.

Het is niet dat ik per se mijn mening door wil drammen o.i.d., ben gewoon nieuwsgierig naar de gedachte erachter :):D
 
Dus moet je de tabellen geen namen geven met reserverd words.

Er is een grote kans dat backticks in een latere versie van MySQL worden verboden. Daarnaast krijg je problemen als je overgaat op een andere database, één keer backticks vergeet, een andere programmeur aan je code verdergaat, etc.

Backticks dien je nóóit te gebruiken.
 
Dus moet je de tabellen geen namen geven met reserverd words.

Dat ben ik helemaal met je eens. Ook zou MySQL (en phpMyAdmin) dit niet mogen laten gebeuren.

In ieder geval: back ontopic maar weer? :D (leuke discussie, dat wel).
 
bedankt voor jullie antwoord maar dit is niet de oplossing

is opgelost dus kan gesloten worden, had een dubbele query staan en echode verkeerde :S
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan