Insterten/updaten werkt deels niet meer
Voor mijn sites heb ik een cms die geruime tijd zonder problemen werkt. De database en dit script zijn niet aangepast, maar toch krijg ik sinds het weekend errors. Het updaten van één veld (release) lukt niet meer. Op diverse pagina's veroorzaakt dit veld (deze komt in meerdere tabellen en meerdere databases (voor elke site) voor) hetzelfde probleem. De query kan niet worden uitgevoerd, terwijl dit gewoon zou moeten werken (en het ook gedaan heeft).
Wanneer ik mysql_error() laat printen, toont ie nu ook niets. De sql query en andere die-message wordt wel gewoon getoond. Via phpMyAdmin ben ik er achter gekomen dat de query vastloopt door dat ene veld.
Ik kan wel via browse > edit het veld wijzigen, maar via een sql query pakt ie hem niet.
UPDATE tabel SET release = '' WHERE id = 'x' weigert ie goed uit te voeren (release staat goed geschreven, is varchar(20) en verder niets bijzonders aan).
Repair table heeft ook geen positief effect.
Iemand enig idee hoe dit probleem op te lossen is?
Misschien update van MySQL gehad?
Is een varchar.
http://dev.mysql.com/doc/refman/5.0/en/reserved-words.html
RELEASE is een gereserveerd woord...dat de ene query het wel doet zal wel komen doordat er dan backticks om het veld staan, dus `release`, beter is om de naam gewoon te wijzigen.
RELEASE is een gereserveerd woord...dat de ene query het wel doet zal wel komen doordat er dan backticks om het veld staan, dus `release`, beter is om de naam gewoon te wijzigen.
Vast weer een fijne update van de host zonder dat iets gemeld wordt (wat nogal eens voorkomt helaas).
een host is zoiets niet verplicht te melden, dat je het weet..
Nee ok, maar verhuizingen van servers waarbij je onverwachts minstens een dag down en een dag kwijt bent aan data is ook niet erg prettig, wat toch best van te voren aangekondigd zou mogen worden. Maar dat terzijde.
Vincent:
Ik mag toch hopen dat je een betere veldnaam hebt gekozen en niet die vieze backtics in je query hebt gezet. Hiermee leer je jezelf een heel beroerd dialect van SQL aan. Ga je dan t.z.t. met andere databases werken, dan blijkt ineens dat allerlei veldnamen 'verboden' zijn. En dat had je al lang kunnen weten...Heb het aangepast en nu werkt het weer.
Dus nooit backtics gebruiken, verzin gewoon een betere naam. Kan niet moeilijk zijn en werkt in iedere database.
Idd andere veldnaam gebruikt. releasedate. :)