INSERT decimale waarde in double-veld
Ik probeer een numerieke waarde met decimalen in mijn database te stoppen. Het veld waar deze in moet komen is van het datatype 'double'. Nu probeerde ik dit op volgende manieren, maar allen werkten niet;
INSERT INTO arprsw (inkp_verp) VALUES (3,25)
INSERT INTO arprsw (inkp_verp) VALUES ('3,25')
INSERT INTO arprsw (inkp_verp) VALUES ("3,25")
INSERT INTO arprsw (inkp_verp) VALUES (`3,25`)
INSERT INTO arprsw (inkp_verp) VALUES (3.25)
INSERT INTO arprsw (inkp_verp) VALUES ('3.25')
INSERT INTO arprsw (inkp_verp) VALUES ("3.25")
INSERT INTO arprsw (inkp_verp) VALUES (`3.25`)
Wanneer ik deze query uitvoer;
INSERT INTO arprsw (inkp_verp) VALUES (3,25)
Doet hij het wel (error: insert values does not match field count), alleen ziet hij het getal aan voor twee waarden door de komma :(... Voor de rest krijg ik of een 'Error in assignment' of een 'syntaxerror'
Ik kan ook niet direct een SQL-functie vinden waarmee ik uit de voeten kan
Ik maak gebruik van een Btrieve Pervasive-2000 database, de db van ons boekhoudpakket.
Weet iemand hoe ik dit op kan lossen?
welke opmaak heeft je double veld? (waardes in phpmyadmin)
Gewijzigd op 01/01/1970 01:00:00 door - wes -
Gewijzigd op 01/01/1970 01:00:00 door - wes -
Er is geen PHPmyAdmin, gezien de DB die ik gebruik..
De opmaak is DOUBLE(6,3)
Overigens de query veranderen in;
INSERT INTO arprsw (inkp_verp) VALUES (3,250) of
INSERT INTO arprsw (inkp_verp) VALUES (3.250)
of op elke andere manier maakt geen verschil.. :(
In PHPmyAdmin en MySQL werkt de volgende query wel;
INSERT INTO `test` ( `id` , `price` ) VALUES ('1', '3.56');
Ik kom er zojuist achter dat een UPDATE query wel stand houd :S ;
UPDATE "arprsw" SET "inkp_verp" = 3.35 WHERE artcode = '1410.0130'
Dit maakt het dat ik er nu helemaal geen snars meer van snap :)
Ik heb volledige rechten over mijn database, dus dit zal het probleem niet vormen
Gewijzigd op 01/01/1970 01:00:00 door Wout van der Burg
PMA is verder gewoon ruk, die herschrijft jouw queries, daar kan dus ook best wel iets fout in gaan.
3.35 is de juiste notatie voor een getal met 2 decimalen.
Klopt, maar in de UPDATE query pakt hij het getal met de punt ook gewoon, maar de INSERT query gaat over z'n nek.. :( geen idee waarom
Indien er nog ideeen zijn, hoor ik ze graag :)
Indien er nog ideeen zijn, hoor ik ze graag :)
Echo je query eens die mis gaat, zet error_reporting op E_ALL en controleer of er niet iets anders mis gaat.
Komt de waarde voor de float uit een formulier? Dan kan het zijn dat die hem nog als "string" ziet, en dat je er met $var = (float)$_POST['double']; nog kan omzetten naar een geldig getal?
@Robert Deiman:
Ik doe deze query niet in PHP-omgeving, maar rechtsreeks in mijn DBMS (Pervasive Control Center). Ik kan ook niet overstappen naar een andere DB, omdat we binnen onze intranetomgeving verbinding maken met onze ERP-software welke ondersteunt wordt door Pervasive Btrieve... Dit zodat we een gebruiksvriendelijke omegving hebben voor medewerkers met gegevens die altijd up-to-date zijn.
INSERT INTO arprsw (inkp_verp) VALUES (3.25)
Maar dat je alle velden moet benoemen?