Avatar billede chrisrj Forsker
22. november 2018 - 17:18 Der er 3 kommentarer og
1 løsning

MySQL påstår at data ikke passer i antal!?

Hejsa

Jeg har et underligt problem med en insert, som påstår at der ikke er nogen værdier at sætte ind.

Min kode:
echo $TotalXchangeAmount.', '.$AmountSinceAdjustment.', '.$CurrentMinExchangeRate.', '.$XRate;
$stmt = $mysqli->prepare("INSERT INTO ".XchangeRateTable." (XRID, TotalXchangeAmount, AmountSinceAdjustment, CurrentMinExchangeRate, CurrentRealRate) VALUES (DEFAULT, ?, ?, '?', '?')");
$stmt->bind_param('iiss', $TotalXchangeAmount, $AmountSinceAdjustment, $CurrentMinExchangeRate, $XRate);

XRID er AUTO_INCREMENT og de to næste kolonner er INT, og de to sidste er varchar. Længden på alle felter er rigelig stor (20 for int, 10 for varchar).

Udskrift på skærm:
4000, 44000, 50, 0.43
Warning: mysqli_stmt::bind_param(): Number of variables doesn't match number of parameters in prepared statement in /var/www/www.jamsatest.dk/www/UBIC/includes/func.php on line 1551
No data supplied for parameters in prepared statement


Dermed ses det tydeligt, at jeg har værdier i variablerne. Så hvorfor vil databasen ikke acceptere dem??
Avatar billede htx98i17 Professor
22. november 2018 - 17:58 #1
Du skal ikke bruge quotes. Men jeg ved ikke om det er årsagen.

skriv:

VALUES (?, ?, ?, ?)



Og du behøves ikke definere en værdi for en autoincrement. Så pil den ud.
Avatar billede chrisrj Forsker
22. november 2018 - 18:05 #2
Jeg skrev som du foreslår, og så virker det sgu. :)

Jeg takker og bukker. :) :)
Avatar billede htx98i17 Professor
22. november 2018 - 18:09 #3
Ja

Det den skriver er at der ikke er et match mellem det ønskede antal værdier du ønsker at indsætte i bind_param og spørgsmålstegnene i prepare.

Det skyldes quotes omkring spørgsmålstegnene. Den opfatter ikke spørgsmålstegnene som noget der skal parses i prepare pga quotes.
Avatar billede chrisrj Forsker
22. november 2018 - 18:38 #4
Ja, så kan man lære at lade være med at blande de forskellige måder at lave db kald på! :D
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester