In versie 5.0.* van MySQL (community versie) is het woord CALL nu een "reserved word". Dat betekent dat je het niet meer kunt gebruiken als naam van een tabel of veld in een data base.
Ik kwam daar achter toen mijn server werd upgraded naar de nieuwe versie: plotseling genereerde mijn on line log syntax errors.
Voor andere "on line" loboek bouwers interessant wellicht. Aangezien ik de standaard ADIF veldnamen ook als veldnamen in de database gebruik (scheelt enorm in de hoeveelheid code...) heb ik nu een apart "if" statement moeten opnemen om van CALL CALLS te maken en omgekeerd.
CALL is nu reserved in MySQL
CALL is nu reserved in MySQL
zenden is zilver.... luisteren is goud!
Kijk ook eens op mijn website of naar mijn andere hobby op Flickr
Kijk ook eens op mijn website of naar mijn andere hobby op Flickr
idd backticks gebruiken....
Je krijgt dan een query die er als volgt uit zou kunnen zien (zo uit m'n hoofd )
of
Je krijgt dan een query die er als volgt uit zou kunnen zien (zo uit m'n hoofd )
SELECT `id`, `call`, `date` FROM `logboek` WHERE `call` LIKE 'pa3%'
of
Let er dus op dat de backticks overal gebruikt moeten worden, zodra je ze gaat gebruiken. in een query!INSERT INTO 'logboek' ( `call`, `date`) VALUES ('pa0abc', NOW() )
Dat met de back ticks werkte bij mij niet omdat ik een hele ADIF sentence uit elkaar pluk en dan de veldnamen gebruik in de INSERT query
zoals:
zoals:
Ik zou de hele coding hebben moeten omgooien. Dus heb ik maar een S achter CALL gezet.$query= 'INSERT INTO QSO '.$F_imp.' VALUES '.$R_imp;
zenden is zilver.... luisteren is goud!
Kijk ook eens op mijn website of naar mijn andere hobby op Flickr
Kijk ook eens op mijn website of naar mijn andere hobby op Flickr
Da's ook een manier om het op te lossen...vk2gwk schreef:Dat met de back ticks werkte bij mij niet omdat ik een hele ADIF sentence uit elkaar pluk en dan de veldnamen gebruik in de INSERT query
zoals:Ik zou de hele coding hebben moeten omgooien. Dus heb ik maar een S achter CALL gezet.$query= 'INSERT INTO QSO '.$F_imp.' VALUES '.$R_imp;
Die veldnamen zou je eventueel ook nog door backticks hebben kunnen laten omsluiten (in ieder geval, het lijkt erop dat je PHP gebruikt). Je had dan iets als dit kunnen doen (weer uit m'n hoofd), er vanuit gaande dat R_imp een array is...
<?php
foreach($R_imp as $imp) { $imp = '`'.$imp.'`'; }
?>
maar wat je nu gedaan hebt is idd makkelijker