Ik raak er niet wijs uit ...
Ik heb een tabel testtabel met één veld : veld1 ( varchar(4) )

Dit is mijn update script :

<?php
$conn = mysql_connect('localhost', 'databank', 'paswoor') or die ('Error connecting to mysql');
$sql="UPDATE `testtabel` set `veld1` = 'bbb' ";
$result=mysql_query($sql) or die ('Errorss while updating data');
echo "Record Updated<BR>";
mysql_close();
?>

Gelijkaardige updates kon ik doen op mijn oude provider ( zonder de backquotes, begrijp nog altijd waarom die nodig zijn ).
Bij mijn huidige provider ( one.com ) lukt insert en select en delete maar mijn update blijft problemen geven en ik weet niet waarom.

Kan iemand dat verduidelijken voor me ?
thx
Backtics ` (jouw backquotes) mag je ritueel gaan verbranden. Gebruik die zooi nooit meer en vergeet dat je ze ooit hebt gebruikt. Het is wel zo smerig om deze te gebruiken! En het ergste is nog dat je daarmee heerlijke problemen aan het aanmaken bent, 1x deze troep vergeten en voor je het weet is jouw database met data en al verdwenen...

Het probleem dat je nu hebt, is dat jij niet controleert of er wel iets is geupdate. De functie mysql_affected_rows() kan je daar meer over vertellen, die vertelt namelijk precies hoeveel records er zijn bijgewerkt. Dat de query lukt, wil namelijk niet zeggen dat er iets is bijgewerkt.

De query ziet er, zonder backtics' wel goed uit, het is correcte SQL.
Ik kan inderdaad nog verder gaan controleren via mysql_affected_rows(), dat is juist.
Met de beste wil van de wereld, maar het update statement werkt enkel met de backquotes :

dus :

$sql="UPDATE `tabel` SET `veld`='bbb' WHERE `Key`='2'";

werkt.

Dit :

$sql="UPDATE kalender SET Title='bbb' WHERE Key='2'";

echter niet .... en ik weet écht niet waarom ....
Waarom begin je kolomnamen met een hoofdletter? Of is dit alleen maar in de SQL? (Misschien ligt hier de fout..)

[edit][offtopic]
OMG... er zijn tegenwoordig veel Marken hier (ok.. jij bent met een c)..
[/offtopic][/edit]
ook deze sql query die je gaf is fout!:
$sql="UPDATE `tabel` SET `veld`='bbb' WHERE `Key`='2'";

mysql verwacht een integer als Key (Is die hoofdletter echt nodig btw?)
wat jij doet is een string 2 erin zetten...daar ga je de mist in natuurlijk. een integer moet je niet quoten:
$sql="UPDATE tabel SET veld='bbb' WHERE key=2";

p.s. die backticks moet je echt snel wegdoen....waarom je querys niet werken zonder?... omdat je hoogst waarschijnlijk een reserved word gebruikt als kollom naam... met backticks werk je daaromheen en juist dat maakt de backticks smerig
inderdaad.
Ik ben er in geslaagd om een reeks reserved words in mijn tabeldefinities te laten sluipen ... duurde even voor ik dit doorhad.
Bedankt. De backquotes zijn verbannen :-)
Connecten.........
Updaten........

Mis je niet wat?

Connecten.........
Select database......... deze misschien?
Updaten........

pgFrank
Backtics ` (jouw backquotes) mag je ritueel gaan verbranden. Gebruik die zooi nooit meer en vergeet dat je ze ooit hebt gebruikt. Het is wel zo smerig om deze te gebruiken! En het ergste is nog dat je daarmee heerlijke problemen aan het aanmaken bent, 1x deze troep vergeten en voor je het weet is jouw database met data en al verdwenen...


Misschien kan jij die stelling wat beargumenteren, of een bronvermelding plaatsen. Ik weet dat backtics overbodig zijn, maar jij spreekt over complete databases verdwenen? Dan weet jij vast iets wat ik nog niet weet. Als ik een backtick vergeet krijg ik gewoon een error, en verdwijnt mijn database(mySQL) niet.

Reageren