update

Status
Niet open voor verdere reacties.

HenkRog

Gebruiker
Lid geworden
9 dec 2008
Berichten
70
Hallo,

ik krijg een foutmelding bij het updaten van een tabel:

Code:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' FIsGemeente = '', FIsTel = '', FIsFax = '', FIsBTW = '', FIsBIV ' at line 5

De PHP code ziet er als volgt uit (gedeeltelijk):

Code:
$update = "UPDATE FIRMA SET 
			FIsOmschr = '$firmaNaam', 
			FIsStraat = '$firmaStraat',
			FIsHuisnummer = '$firmaHuisNummer',
			FInPostcode = $firmaPostcode,
			FIsGemeente = '$firmaGemeente',
			FIsTel = '$firmaTel',
			FIsFax = '$firmaFax',
			FIsBTW = '$firmaBTW',
			FIsBIV = '$firmaBIV',
			FIsEmail = '$firmaEmail',
			FIsWebsite = '$firmaWebsite',
			FIsLogo = '$firmaLogo' 
			WHERE FInun = " . $_POST["txtFirmaUN"];
				
			$result = mysql_query($update);

De meeste variabelen zijn leeg bij mijn update.

Ik heb een test-opstelling en daar werkt alles perfect. De versie van PHP en MySQL kan misschien wel een beetje verschillen.

Is er iets mis met mijn statement???
 
postcode is een nummer, daarmee dat ik er geen quotes rond zette.

Bij mij lokaal lukt nochtans alles
 
Probeer dit is:

PHP:
$update = "UPDATE FIRMA SET 
            FIsOmschr = '".$firmaNaam."', 
            FIsStraat = '".$firmaStraat."',
            FIsHuisnummer = '".$firmaHuisNummer."',
            FInPostcode = '".$firmaPostcode."',
            FIsGemeente = '".$firmaGemeente."',
            FIsTel = '".$firmaTel."',
            FIsFax = '".$firmaFax."',
            FIsBTW = '".$firmaBTW."',
            FIsBIV = '".$firmaBIV."',
            FIsEmail = '".$firmaEmail."',
            FIsWebsite = '".$firmaWebsite."',
            FIsLogo = '".$firmaLogo."' 
            WHERE FInun = " . $_POST["txtFirmaUN"];
                
            $result = mysql_query($update);
 
Probeer dit is:

PHP:
$update = "UPDATE FIRMA SET 
            FIsOmschr = '".$firmaNaam."', 
            FIsStraat = '".$firmaStraat."',
            FIsHuisnummer = '".$firmaHuisNummer."',
            FInPostcode = '".$firmaPostcode."',
            FIsGemeente = '".$firmaGemeente."',
            FIsTel = '".$firmaTel."',
            FIsFax = '".$firmaFax."',
            FIsBTW = '".$firmaBTW."',
            FIsBIV = '".$firmaBIV."',
            FIsEmail = '".$firmaEmail."',
            FIsWebsite = '".$firmaWebsite."',
            FIsLogo = '".$firmaLogo."' 
            WHERE FInun = " . $_POST["txtFirmaUN"];
                
            $result = mysql_query($update);

Waarom gebruik je nu bij de WHERE geen quotes? En de paus heeft gelijk. Een postcode bevat ook letters :rolleyes: Is het datatype in je database ook daadwerkelijk een INT?
 
Laatst bewerkt:
Oh sorry, die had ik over het hoofd gezien.

PHP:
$update = "UPDATE FIRMA SET 
            FIsOmschr = '".$firmaNaam."', 
            FIsStraat = '".$firmaStraat."',
            FIsHuisnummer = '".$firmaHuisNummer."',
            FInPostcode = '".$firmaPostcode."',
            FIsGemeente = '".$firmaGemeente."',
            FIsTel = '".$firmaTel."',
            FIsFax = '".$firmaFax."',
            FIsBTW = '".$firmaBTW."',
            FIsBIV = '".$firmaBIV."',
            FIsEmail = '".$firmaEmail."',
            FIsWebsite = '".$firmaWebsite."',
            FIsLogo = '".$firmaLogo."' 
            WHERE FInun = '" . $_POST["txtFirmaUN"]."'";
                
            $result = mysql_query($update);
 
In België hebben we die letters niet in de postcode daarmee dat het een int is.

Moet ik dan ook quotes rond ints zetten?

is het niet toegelaten om het op deze manier te doen:
Code:
FIsOmschr = '$firmaNaam',

of moet ik de string telkens stoppen?
 
Volgens mij niet nee, dus je moet volgens mij elke de string stoppen ja, maar doet dit het?
 
Ik heb het probleem gevonden, het statement is wel correct, maar als de postcode leeg is moet ik NULL in de variabele steken.
 
Je hoeft niet per sé quotes te gebruiken rond een INT, maar het is wel aan te raden. Waarom weet ik niet meer, maar dat heeft SvU (geloof ik) me eens verteld.

Daarnaast kun je alsnog best een varchar veld gebruiken. Het mag dan alleen uit getallen bestaan. Je gaat er geen rekenkundige operaties op uitvoeren.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan