Ik heb een database waar een kolom naam Call heet.

Via een query lukt dit niet.. Call blijkt een commando te zijn.

"SELECT * FROM $db_table WHERE Call LIKE '%$searchq%' ORDER BY QsoDate DESC, TimeOn DESC"

Als ik nu de kolom naam verander in Calll dan werkt het wel.

Hoe kan ik het toch zo maken dat hij uit kolom: Call we uitleest?
Ik kan namelijk die naam niet veranderen in de database, dat is een gegeven.

Alvast bedankt voor het mee denken :-)
Toch vind ik dat je hier als programmeur ook een beetje flexibel (lees: vooruit denken) mee om moet kunnen gaan (en maar niet meteen "een ander" semi verplichten z'n systeem aan te passen). Misschien werkt dit bronsysteem wel op meerdere database systemen, en is het in de favo database van deze ontwikkelaar geen reserved word. Of is het gewoon een CSV/XML/whatever export die 1:1 in een tabel wordt ingelezen. Er komen ook steeds meer keywords bij, dus wat in de ene versie wel werkt(e), geeft opeens problemen in de nieuwe/andere versie.

Dan kun je dus twee dingen doen:
- of je prefixt alles zodanig "complex" dat die prefix combinatie het never nooit tot een nieuwe keyword schopt,
- of je werkt met backtics of aliassen (wel zorgen dat je alias niet een reserved word is/wordt ...).
bedankt allemaal voor het mee denken.
Zelf denk ik dat het laat voor wat het is.
Dit namelijk omdat ik net kom kijken in de wereld van PHP en nog niet alles 100% begrijp hoe het werkt.
We doen het hier gewoon mee.. de truuk van de backticks werkt prima voor nu :-)

Reageren